Spring 如何读取properties文件内容
2016-05-11 13:39
609 查看
http://hi.baidu.com/alizv/blog/item/d8cb2af4094662dbf3d38539.html
在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据我工作中用到的读取properties配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。
用spring读取配置文件,最典型的就是关于数据库的连接,下面就是一个例子:
文件jdbc.properties:
-------------------------------------------------------------------------------------
引入spring的相关jar包,在applicationContext.xml中配置:
-------------------------------------------------------------------------------------
DataDAO.Java
2.用java.util.Properties这个类来读取
比如,我们构造一个ipConfig.properties来保存服务器ip地址和端口,如:
则,我们可以用如下程序来获得服务器配置信息:
--------------------------------------------------------------------------------------
上面介绍了读取properties的内容,现实中我们还有可能要修改文件的内容,下面就看下怎么修改properties的内容,文件还是上面那个:
可以看见修改之前的和修改之后的内容有改变;在上面有点要注意的:
就是p.load(in);要写在FileOutputStream out = new FileOutputStream(path);之前,不然的话,修改后的文件内容就成了ip=1234567,而port=8080这句被覆盖了;什么愿意大家自己想想吧;
上面介绍了两中读取properties文件的方法,希望对大家有帮助........
在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据我工作中用到的读取properties配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。
用spring读取配置文件,最典型的就是关于数据库的连接,下面就是一个例子:
文件jdbc.properties:
-------------------------------------------------------------------------------------
driverClassName com.MySQL.jdbc.Driver url jdbc:mysql://localhost:3306/test username root password 1234------------------------------------------------------------------------------------
引入spring的相关jar包,在applicationContext.xml中配置:
-------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>src/jdbc.properties</value> </property> </bean> <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>${driverClassName}</value> </property> <property name="url"> <value>${url}</value> </property> <property name="username"> <value>${username}</value> </property> <property name="password"> <value>${password}</value> </property> </bean> <bean id="dao" class="com.zh.model.DataDAO"> <property name="datasource"> <ref local="datasource"/> </property> </bean> </beans>-----------------------------------------------------------------------------------------
DataDAO.Java
package com.zh.model; import javax.sql.DataSource; public class DataDAO { private DataSource datasource; public DataSource getDatasource() { return datasource; } public void setDatasource(DataSource datasource) { this.datasource = datasource; } } ------------------------------------------------------------------------------------ 测试连接是否成功,test.java package com.zh.logic; import java.sql.Connection; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.zh.model.DataDAO; public class test { public static void main(String [] args){ try{ String[] path = {"src/applicationContext.xml"}; ApplicationContext ctx = new FileSystemXmlApplicationContext(path); DataDAO dao = (DataDAO)ctx.getBean("dao"); Connection con = dao.getDatasource().getConnection(); System.out.println(con.isClosed()); //System.out.print(dao.getName()); }catch(Exception ex){ ex.printStackTrace(); } } }-------------------------------------------------------------------------------------
2.用java.util.Properties这个类来读取
比如,我们构造一个ipConfig.properties来保存服务器ip地址和端口,如:
ip=192.168.0.1 port=8080--------------------------------------------------------------------------------------
则,我们可以用如下程序来获得服务器配置信息:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ipConfig.properties"); Properties p = new Properties(); try{ p.load(inputStream); } catch (IOException e1){ e1.printStackTrace(); } System.out.println("ip:"+p.getProperty("ip")+",port:"+p.getProperty("port"));
--------------------------------------------------------------------------------------
上面介绍了读取properties的内容,现实中我们还有可能要修改文件的内容,下面就看下怎么修改properties的内容,文件还是上面那个:
package com.zh.logic; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Properties; public class TestRead { public void read(){ try { InputStream in = this.getClass().getClassLoader().getResourceAsStream("config/host.properties"); Properties p = new Properties(); p.load(in); //p.list(System.out); System.out.println(p.getProperty("ip")+","+p.getProperty("username")+","+p.getProperty("pwd")); } catch (Exception e) { e.printStackTrace(); } } public void update(String path){ try{ Properties p = new Properties(); FileInputStream in = new FileInputStream(path); p.load(in); FileOutputStream out = new FileOutputStream(path); p.setProperty("ip","1234567"); p.store(out,"ip update"); //p.save(out,"ip updated"); }catch(Exception ex){ ex.printStackTrace(); } } public static void main(String[] args){ TestRead td = new TestRead(); td.read(); td.update("config/host.properties"); td.read(); } }
可以看见修改之前的和修改之后的内容有改变;在上面有点要注意的:
FileInputStream in = new FileInputStream(path); p.load(in); FileOutputStream out = new FileOutputStream(path);
就是p.load(in);要写在FileOutputStream out = new FileOutputStream(path);之前,不然的话,修改后的文件内容就成了ip=1234567,而port=8080这句被覆盖了;什么愿意大家自己想想吧;
上面介绍了两中读取properties文件的方法,希望对大家有帮助........
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树