多数的鲜为人知方法都是因为有着罕见的应用,就比如说Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。
基本的使用方法是:(1)
- < bean id= "propertyConfigurerForAnalysis" class= "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
- < property name= "location" >
- < value >classpath:/spring/include/dbQuery.properties </ value >
- </ property >
- </ bean >
其中classpath是引用src目录下的文件写法。
当存在多个Properties文件时,配置就需使用locations了:(2)
- < bean id= "propertyConfigurer" class= "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
- < property name= "locations" >
- < list >
- < value >classpath:/spring/include/jdbc-parms.properties </ value >
- < value >classpath:/spring/include/base-config.properties </ value >
- </ list >
- </ property >
- </ bean >
接下来我们要使用多个PropertyPlaceholderConfigurer来分散配置,达到整合多工程下的多个分散的Properties文件,其配置如下:(3)
- < bean id= "propertyConfigurerForProject1" class= "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
- < property name= "order" value= "1" />
- < property name= "ignoreUnresolvablePlaceholders" value= "true" />
- < property name= "location" >
- < value >classpath:/spring/include/dbQuery.properties </ value >
- </ property >
- </ bean >
- <bean id= "propertyConfigurerForProject2" class= "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name= "order" value= "2" />
- <property name= "ignoreUnresolvablePlaceholders" value= "true" />
- <property name= "locations">
- <list>
- <value>classpath:/spring/include/jdbc-parms.properties</value>
- <value>classpath:/spring/include/base-config.properties</value>
- </list>
- </property>
- </bean>
其中order属性代表其加载顺序,而ignoreUnresolvablePlaceholders为是否忽略不可解析的Placeholder,如配置了多个PropertyPlaceholderConfigurer,则需设置为true
至此你已经了解到了如何使用PropertyPlaceholderConfigurer,如何使用多个Properties文件,以及如何配置多个PropertyPlaceholderConfigurer来分解工程中分散的Properties文件。至于PropertyPlaceholderConfigurer还有更多的扩展应用,如属性文件加密解密等方法将在之后的博文中续写。