/**
*
*/
package de.tutorials;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Properties;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
/**
* @author Thomas.Darimont
*
*/
public class OnTheFlyPropertyPlaceHolderConfigurerExample {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
ApplicationContext applicationContext = new FileSystemXmlApplicationContext(
"config/config.xml");
DomainObject domainObject = (DomainObject) applicationContext
.getBean(DomainObject.class.getName());
System.out.println(domainObject);
String propertyFileLocation = "config/config.properties";
Properties properties = new Properties();
properties.load(new FileInputStream(propertyFileLocation));
properties.setProperty("propertyValue", "gugu");
OutputStream outputStream = new FileOutputStream(propertyFileLocation);
properties.store(outputStream, null);
outputStream.close();
System.out.println("refresh...");
((ConfigurableApplicationContext) applicationContext).refresh();
System.out.println("configure bean...");
applicationContext.getAutowireCapableBeanFactory().configureBean(
domainObject, DomainObject.class.getName());
System.out.println(domainObject);
}
}