在这个配置文件中,我们首先定义了类型为org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
的bean,这个bean用来将解析properties文件,spring可以使用此类,来将其他bean中类似EL表达式${abc}的值替换为配置文件的值。PropertyPlaceholderConfigurer
类的locations属性是一个数组,也就是说可以指定多个配置文件。
<!-- 定义Spring环境变量,通过读取外部的properties文件来实现 define envirement varibles --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" id="pphc"> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> <property name="ignoreResourceNotFound" value="true" /> <property name="locations"> <list> <!-- standard config <value>classpath*:application.properties</value> --> <value>/WEB-INF/application.properties</value> </list> </property> </bean> <bean id="propertyTest" class="org.sam.test.DoggyTest"> <property name="weight" value="${dog.weight}"/> </bean>
java代码如下:
package org.sam.test; public class DoggyTest { private String weight; DoggyTest() { System.out.println("On init DoggyTest:" + this.weight); } public String getWeight() { return weight; } public void setWeight(String weight) { this.weight = weight; System.out.println("On setting DoggyTest:" + this.weight); } }
refer to: http://outofmemory.cn/code-snippet/3681/spring-bean-with-properties