项目中的一些灵活配置,设置到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即可使用了。