多數的鮮為人知方法都是因為有着罕見的應用,就比如說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還有更多的擴展應用,如屬性文件加密解密等方法將在之后的博文中續寫。