The solution to this is probably very simple, but I'm not sure what I am missing. Here is what I have, and PropertyPlaceholderConfigurer will not replace ${...} .
package org.company.springtest; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; public class Test { public static void main( String... args ) { Resource res = new FileSystemResource("conf/xml/context2.xml"); XmlBeanFactory beanFactory = new XmlBeanFactory(res); TestApp app = (TestApp) beanFactory.getBean("testApp"); app.print(); } } package org.company.springtest; import org.springframework.beans.factory.annotation.Required; public class TestApp { private String m_message; public void setMessage( String message ) { m_message = message; } public void print() { System.out.println(m_message); } } <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lang="http://www.springframework.org/schema/lang" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations" value="file:conf/xml/test.properties" /> </bean> <bean id="testApp" class="org.company.springtest.TestApp"> <property name="message" value="${test.message}"/> </bean> </beans> test.message=Hello world!
The following is the output when starting the test:
Feb 17, 2009 11:23:06 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Loading XML bean definitions from file [C:\eclipse\workspace\SpringTest\conf\xml\context2.xml] ${test.message}
Configurer does not seem to replace property values ...
source share