파일 구조
- java : AdminConnection, AppConfig, MainClass.java
- resource : appCTX.xml, pej.properties, pej2.properties
- Annotation과 xml방식 포함.
- 추가 예정: 주석, 분석
appCTX.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-3.1.xsd">
<!--
<context:property-placeholder location = "classpath:pej.properties, classpath:pej2.properties" />
<bean id = "adminConnection" class = "com.javalec.ex.AdminConnection">
<property name="adminId">
<value>${admin.id}</value>
</property>
<property name="adminPw">
<value>${admin.pw}</value>
</property>
<property name="sub_adminId">
<value>${sub_admin.id}</value>
</property>
<property name="sub_adminPw">
<value>${sub_admin.pw}</value>
</property>
</bean> -->
</beans>
pej.properties / pej2.properties
// pej.properties
admin.id=pej
admin.pw=12345
// pej2.properties
sub_admin.id=jep
sub_admin.pw=54321
AdminConnection.java
package com.javalec.ex;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
public class AdminConnection implements InitializingBean, DisposableBean {
private String adminId;
private String adminPw;
private String sub_adminId;
private String sub_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;
}
public String getSub_adminId() {
return sub_adminId;
}
public void setSub_adminId(String sub_adminId) {
this.sub_adminId = sub_adminId;
}
public String getSub_adminPw() {
return sub_adminPw;
}
public void setSub_adminPw(String sub_adminPw) {
this.sub_adminPw = sub_adminPw;
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("AfterProperties");
}
@Override
public void destroy() throws Exception {
System.out.println("destroy");
}
}
AppConfig.java
package com.javalec.ex;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@Configuration
public class AppConfig {
@Value("${admin.id}")
private String adminId;
@Value("${admin.pw}")
private String adminPw;
@Value("${sub_admin.id}")
private String sub_adminId;
@Value("${sub_admin.pw}")
private String sub_adminPw;
@Bean
public static PropertySourcesPlaceholderConfigurer Properties() {
// static의 기능 : 외부에서 실행하기 때문에..
PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
Resource[] locations = new Resource[2];
locations[0] = new ClassPathResource("pej.properties");
locations[1] = new ClassPathResource("pej2.properties");
configurer.setLocations(locations);
return configurer;
}
@Bean
public AdminConnection adminConfig() {
AdminConnection adminConnection = new AdminConnection();
adminConnection.setAdminId(adminId);
adminConnection.setAdminPw(adminPw);
adminConnection.setSub_adminId(sub_adminId);
adminConnection.setSub_adminPw(sub_adminPw);
return adminConnection;
}
}
MainClass.java
package com.javalec.ex;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
// AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:appCTX.xml");
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
AdminConnection connection = ctx.getBean("adminConfig", AdminConnection.class);
System.out.println("adminID : " + connection.getAdminId());
System.out.println("adminPW : " + connection.getAdminPw());
System.out.println("sub_adminID : " + connection.getSub_adminId());
System.out.println("sub_adminPW : " + connection.getSub_adminPw());
ctx.close();
}
}
반응형
'자바과정 > 스프링' 카테고리의 다른 글
스프링 실습예제(Xml 방식의 AOP) (0) | 2021.04.08 |
---|---|
스프링 실습 예제(Profile, Environment 사용) (0) | 2021.04.07 |
스프링 실습 예제 (외부 데이터 사용) (0) | 2021.04.07 |
Spring Bean scope 범위 종류 (0) | 2021.04.06 |
스프링 라이프사이클 실습(생명주기, Bean 객체 생성 - 소멸) (0) | 2021.04.06 |
댓글