我需要根据给定的系统属性加载特定的applicationContext.xml文件。这本身将加载具有实际配置的文件。因此,我需要2个PropertyPlaceHolderConfigurer,一个可解决系统参数,另一个在实际配置中。
任何想法如何做到这一点?
是的,你可以做多个。确保设置ignoreUnresolvablePlaceholders,以便第一个将忽略它无法解析的所有占位符。
<bean id="ppConfig1" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="ignoreUnresolvablePlaceholders" value="true"/> <property name="locations"> <list> <value>classpath*:/my.properties</value> </list> </property> </bean> <bean id="ppConfig2" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="ignoreUnresolvablePlaceholders" value="false"/> <property name="locations"> <list> <value>classpath*:/myOther.properties</value> </list> </property> </bean>
根据你的应用程序,你应该调查systemPropertiesMode,它允许你从文件中加载属性,但允许系统属性覆盖属性文件中的值(如果已设置)。