content: package jp.aegif.nemaki.util.spring;
  
  import org.springframework.beans.BeansException;
  import org.springframework.beans.factory.InitializingBean;
  import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
  import org.springframework.context.ApplicationContext;
  import org.springframework.context.ApplicationContextAware;
  import org.springframework.web.context.support.XmlWebApplicationContext;
  
  public class NemakiApplicationContextLoader implements ApplicationContextAware,
  		InitializingBean {
  	private XmlWebApplicationContext applicationContext;
  	private PropertyPlaceholderConfigurer propertyConfigurer;
  	private String[] configLocations;
  
  	@Override
  	public void setApplicationContext(ApplicationContext applicationContext)
  			throws BeansException {
  		this.applicationContext = (XmlWebApplicationContext) applicationContext;
  
  	}
  
  	@Override
  	public void afterPropertiesSet() throws Exception {
  		applicationContext.setConfigLocations(configLocations);
  		applicationContext.addBeanFactoryPostProcessor(propertyConfigurer);
  		applicationContext.refresh();
  	}
  
  	public void setPropertyConfigurer(
  			PropertyPlaceholderConfigurer propertyConfigurer) {
  		this.propertyConfigurer = propertyConfigurer;
  	}
  
  	public void setConfigLocations(String[] configLocations) {
  		this.configLocations = configLocations;
  	}
  }
  