项目中的一些灵活配置,设置到properties文件中,项目中通过读取properties中相应的值来使用,修改时,也只修改properties即可。以上为使用的好处,现在,总结一下项目中propeties文件的使用。
一、java直接读取properties
二、spring管理properties
三、自定义PropertyPlaceholderConfigurer
第一种,java直接读取的方式有很多种,主要思路就是通过inputStream读取到properties文件,获取值并应用。主要代码:
<pre name="code" class="java">Properties properties = new Properties();
InputStream in = Object.class.getResourceAsStream("properties的路径");
properties.load(in);
现在,通过properties可以取到值并应用了。
第二种,spring管理
spring主要是通过PropertyPlaceholderConfigurer类来管理。该类是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文(配置文 件)中的属性值放在另一个单独的标准java Properties文件中去。
下面看一段我们都熟悉的代码:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:config/jdbc.properties</value>
<value>classpath*:config/default.properties</value>
</list>
</property>
</bean>
<pre name="code" class="html"><bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
在我们的service或者action中使用时,也是同样,将properties中的key写到对应bean的配置中。
<bean id="userIService" class="com.upCloud.service.UserServiceImpl">
<property name="default1" value="${default1}" />
</bean>
在bean中配置之后,在userServiceImpl.java中注入default1即可使用了。
在实际应用中,存在的问题是:如果action或者dao层的类不需要在xml中声明,那properties中的值如何配置呢?下篇,再继续介绍自定义PropertyPlaceholderConfigurer,来实现更灵活的读取方式。