We need to use an external properties file (not in the classpath, not bundled with our WAR/EAR) & these properties need to be used to set some spring bean properties. This is exactly described in a 2008 blog post at
http://springtips.blogspot.com/2008/09/configuring-applications-with-spring.html ('Optional External Properties'). I tried using the technique in an example but I get the error that the property that I reference from the external file is not being set.
1) spring bean xml file (TestSpringProp is my own Spring bean that I'm
testing this example with; it has setMyProp and getMyProp methods):
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true"/>
<property name="location" value="${PropFile}"/>
</bean>
<bean id="TestSpringProp" class="com.att.testspring.TestSpringProp">
<property name="myProp" value="${test.myprop}" />
</bean>
2) I create C:\deploy\myprops.properties as follows:
test.myprop=whatever
3) I then run it from Eclipse with the JVM argument as follows: -DPropFile=C:\deploy\myprops.properties
4) I don't get any errors on the 2 PropertyPlaceholderConfigurer beans but I get an error when I try to access the property that's in my property file: "Invalid bean definition with name 'TestSpringProp' defined in class path resource [config/spring/testspring.xml]: Could not resolve placeholder 'test.myprop'