Get value from properties file outside a jar using Spring


I have a jar file which need to dynamically load external properties file and read values from this properties file.Those values are need in the java program.with Spring,it's very to do that.
1.create a config.properties
portlet.groupId=com.rujuan
portlet.artifactId=hello-world
2.config your appication Contect.xml. 
The bean PropertyPlaceholderConfigrer.It provides the functinality which we can use the properties file inside jar or use external properties file.
The second thing is how we get those values in the property.Here I wrote a POJO class,and config those key as property in the POJO class.
<?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:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.1.xsd      
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd      
    http://www.springframework.org/schema/jdbc 
    http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd      
    http://www.springframework.org/schema/util 
	http://www.springframework.org/schema/util/spring-util-3.1.xsd">

	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="ignoreResourceNotFound" value="true" />
		<property name="locations">
			<list>
				<value>classpath:defaultconfig.properties</value>
				<value>file:${target_env}</value>
			</list>
		</property>
	</bean>
	
	<bean id="createPortlet" class="com.rujuan.Portlet">
		<property name="groupId" value="${portlet.groupId}" />
		<property name="artifactId" value="${portlet.artifactId}" />	
	</bean>
 
</beans>
3.POJO class:Portlet.java
public class Portlet {

	private String groupId;
	private String artifactId;

	public String getGroupId() {
		return groupId;
	}

	public void setGroupId(String groupId) {
		this.groupId = groupId;
	}

	public String getArtifactId() {
		return artifactId;
	}

	public void setArtifactId(String artifactId) {
		this.artifactId = artifactId;
	}
}
4.Last thing、our main class: Portlet Creator Main

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class PortletCreatorMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		Portlet portlet = context.getBean("createPortlet", Portlet.class);
		System.out.println(portlet.getArtifactId());
	}

}
In this case,you can get the value from Portlet properties.