使用Spring提供的org.springframework.beans.factory.config.PropertyPlaceholderConfigurer可以引入properties文件,并且在applectionContext文件的其他部分用${}引用其中的值。
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
lazy-init="false">
<property name="locations">
<list>
<value>classpath*:dao.properties</value>
</list>
</property>
</bean>
而使用org.springframework.beans.factory.config.PropertyOverrideConfigurer可以用properties文件中的值覆盖applicationContext中定义的bean的property值,例如:
//原来的bean中的一个属性,通过${jdbc.url}引入dao.properties中的一个值
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="jdbcUrl">
<value>${jdbc.url}</value>
</property>
</bean>
//利用PropertyOverrideConfigurer,引入另一个properties文件test.properties
<bean id="testPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="location" value="classpath:context/test/test.properties"/>
<property name="ignoreInvalidKeys" value="true"/>
</bean>
//test.properties中覆盖原来的dataSource的jdbcUrl属性:
dataSource.jdbcUrl=jdbc:hsqldb:res:db
将testPropertyConfigurer放在单独的xml文件中,如果不加载这个xml,那么dataSource.jdbcUrl为dao.properties中的值
如果加载这个文件,那么dataSource.jdbcUrl为test.properties中的值
以上参考springside.com.cn