由于工作中用到配置文件,所以学习了一下,总结以备后用。
一、读取properties配置文件
(一)、利用java.util.Properties读取属性文件
systemConfig.properties文件内容
ip=192.168.0.1
port=8080
public class SystemConfig {
private static Properties props = null;
static {
try {
props = new Properties();
URL url = Thread.currentThread().getContextClassLoader()
.getResource("systemConfig.properties");
if (url != null) {
props.load(url.openStream());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getProperty(String key) {
return getProperty(key, "");
}
public static String getProperty(String key, String defaultValue) {
if (props != null && props.getProperty(key) != null) {
return props.getProperty(key);
}
return defaultValue;
}
public static void main(String[] args) {
String str = SystemConfig.getProperty("ip");
String str1 = SystemConfig.getProperty("port");
System.out.println(str + "==11=="+str1);
}
}
(二)、利用spring读取properties 文件(测试不通过)
构造如下beanConfig.properties文件:
properties 代码
helloBean.class=chb.demo.vo.HelloBean
helloBean.helloWorld=Hello!chb!
属性文件中的"helloBean"名称即是Bean的别名设定,.class用于指定类来源。
然后利用org.springframework.beans.factory.support.PropertiesBeanDefinitionReader来读取属性文件
java 代码
BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg);
reader.loadBeanDefinitions(new ClassPathResource("beanConfig.properties"));
BeanFactory factory = (BeanFactory)reg;
HelloBean helloBean = (HelloBean)factory.getBean("helloBean");
System.out.println(helloBean.getHelloWorld());
这个方法我测试不行,网上说这样做。希望能人给个答案。
二、读取xml配置文件
(一)新建一个java bean(HelloBean.java)
1. package chb.demo.vo;
2.
3. public class HelloBean {
4. private String helloWorld;
5.
6. public String getHelloWorld() {
7. return helloWorld;
8. }
9.
10. public void setHelloWorld(String helloWorld) {
11. this.helloWorld = helloWorld;
12. }
13. }
14.
(二)构造一个配置文件(beanConfig.xml)
xml 代码
1. xml version="1.0" encoding="UTF-8"?>
2. >
3. <beans>
4. <bean id="helloBean" class="chb.demo.vo.HelloBean">
5. <property name="helloWorld">
6. <value>Hello</value>
7. property>
8. bean>
9. beans>
(三)读取xml文件
1.利用ClassPathXmlApplicationContext
java 代码
1. ApplicationContext context = new ClassPathXmlApplicationContext("beanConfig.xml");
2. HelloBean helloBean = (HelloBean)context.getBean("helloBean");
3. System.out.println(helloBean.getHelloWorld());
2.利用FileSystemResource读取
java 代码
1. Resource rs = new FileSystemResource("D:/software/tomcat/webapps/springWebDemo/WEB-INF/classes/beanConfig.xml");
2. BeanFactory factory = new XmlBeanFactory(rs);
3. HelloBean helloBean = (HelloBean)factory.getBean("helloBean");\
4. System.out.println(helloBean.getHelloWorld());
值得注意的是:利用FileSystemResource,则配置文件必须放在project直接目录下,或者写明绝对路径,否则就会抛出找不到文件的异常