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>