Read Spring Bean Values from Property File
This example uses a BeanFactoryPostProcessor called PropertyPlaceholderConfigurer to read spring.xml config values from a property file.
Example
people2.properties
[code language=”java” collapse=”true”]
jondoe.name=Jon Doe
janedoe.name=Jane Doe
janedoe.age=18
janedoe.email=jane.doe@gmail.com
janedoe.address=london
[/code]
people2.xml
[code language=”xml” collapse=”true”]
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!– Person Beans –>
<bean id="jondoe" class="com.skills421.examples.spring.model.Person">
<property name="name" value="${jondoe.name}" />
</bean>
<bean id="janedoe" class="com.skills421.examples.spring.model.Person">
<property name="name" value="${janedoe.name}" />
<property name="age" value="${janedoe.age}" />
<property name="email" value="${janedoe.email}" />
<property name="address" ref="${janedoe.address}" />
</bean>
<!– Address Beans –>
<bean id="london" class="com.skills421.examples.spring.model.Address">
<property name="addressLines">
<list>
<value>House of Commons</value>
<value>Parliament Square</value>
</list>
</property>
<property name="town" value="London" />
<property name="county" value="Greater London" />
<property name="postcode" value="SW1 1AA" />
</bean>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="people.properties" />
</bean>
</beans>
[/code]
note that we use the PropertyPlaceholderConfigurer which is a BeanFactoryPostProcessor provided specifically for working with property configuration.
TestPeople2.java
[code language=”java” collapse=”true”]
package com.skills421.example.spring;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.skills421.examples.spring.model.Person;
public class TestPeople2
{
private static AbstractApplicationContext context;
@BeforeClass
public static void setupAppContext()
{
context = new ClassPathXmlApplicationContext("people2.xml");
}
@AfterClass
public static void closeAppContext()
{
if(context!=null)
{
context.close();
}
}
@After
public void printBlankLine()
{
System.out.println();
}
@Test
public void test1()
{
System.out.println("jondoe");
Person person = context.getBean("jondoe",Person.class);
System.out.println(person);
}
@Test
public void test2()
{
System.out.println("janedoe");
Person person = context.getBean("janedoe",Person.class);
System.out.println(person);
}
}
[/code]