본문 바로가기

SPRING

Class를 이용한 환경설정 예제



1) MainClass.java

public class MainClass { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.class); // xml파일을 읽을 때의 코드 //AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationCTX.xml"); AdminConn adminConn = ctx.getBean("adminConnConfig", AdminConn.class); Logger.out(adminConn.getAdminId()); Logger.out(adminConn.getAdminPw()); ctx.close(); } }


2) ApplicationConfig.java

@Configuration 
public class ApplicationConfig {

        // @Value 어노테이션으로 자동 매핑
	@Value("${admin.id}")
	private String adminId;
	@Value("${admin.pw}")
	private String adminPw;
	
	@Bean
	public static PropertySourcesPlaceholderConfigurer properties() {
		PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
		
		Resource[] locations = new Resource[1];
		locations[0] = new ClassPathResource("admin.properties");
		configurer.setLocations(locations);
		
		return configurer;
	}
	
	@Bean
	public AdminConn adminConnConfig() {
		AdminConn adminConn = new AdminConn();
		adminConn.setAdminId(this.adminId);
		adminConn.setAdminPw(this.adminPw);
		
		return adminConn;
	}
}

3) AdminConn.java
public class AdminConn implements EnvironmentAware, InitializingBean, DisposableBean {
	private String adminId;
	private String adminPw;

	public String getAdminId() {
		return adminId;
	}
	public void setAdminId(String adminId) {
		this.adminId = adminId;
	}
	public String getAdminPw() {
		return adminPw;
	}
	public void setAdminPw(String adminPw) {
		this.adminPw = adminPw;
	}

	@Override
	public void destroy() throws Exception {
	}
	@Override
	public void afterPropertiesSet() throws Exception {
	}
	@Override
	public void setEnvironment(Environment environment) {
	}
}


4) admin.properties

  admin.id=admin
  admin.pw=123445


5) applicationCTX.xml

<?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:context="http://www.springframework.org/schema/context" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
	<context:property-placeholder location="classpath:admin.properties" />
	<bean id="adminConnConfig" class="com.ska.ex.AdminConn">
		<property name="adminId">
			<value>${admin.id}</value>
		</property>
		<property name="adminPw">
			<value>${admin.pw}</value>
		</property>
	</bean>	
</beans>