Spring - bean을 이용해 .properties 값 가져오기
프로그래밍 정리/Spring
2019. 12. 26. 15:27
반응형
Spring - Bean을 이용해 .properties 값 가져오기
XML을 이용해 가져오는 방식과 비슷하다.
앞서 얘기한 applicationCTL.xml 대신 AdminConnection.java를 사용한다.
1. xml파일이 있는 경로에 .properties 파일을 만든다.
2. DI 방식으로 만든다.
class 상단에 @Configuration
변수에 @Value(값)
메소드에 @Bean을 붙여준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | @Configuration public class ApplicationConfig { @Value("${admin.id}") //Properties() 에서 값을 가져옴 private String adminId; @Value("${admin.pw}") //Properties() 에서 값을 가져옴 private String adminPw; @Value("${sub_admin.id}") //Properties() 에서 값을 가져옴 private String sub_adminId; @Value("${sub_admin.pw}") //Properties() 에서 값을 가져옴 private String sub_adminPw; @Bean public static PropertySourcesPlaceholderConfigurer Properties() { PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer(); Resource[] locations = new Resource[2]; //배열 선언 locations[0] = new ClassPathResource("admin.properties"); //경로1를 배열에 삽입 locations[1] = new ClassPathResource("sub_admin.properties"); //경로2를 배열에 삽입 configurer.setLocations(locations); return configurer; //properties() 객체 반환 } @Bean public AdminConnection adminConfig() { //AdminConnection 객체 반환 AdminConnection adminConnection = new AdminConnection(); adminConnection.setAdminId(adminId); adminConnection.setAdminPw(adminPw); adminConnection.setSub_adminId(sub_adminId); adminConnection.setSub_adminPw(sub_adminPw); return adminConnection; } } | cs |
-main.java 에서 값을 가져온다.
컨테이너 생명주기 참고 : https://cloud0477.tistory.com/59
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.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(); } | cs |
-------모든소스-------
adminConnection.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | public class AdminConnection implements InitializingBean, DisposableBean { private String adminId; private String adminPw; private String sub_adminId; private String sub_adminPw; public void setAdminId(String adminId) { this.adminId = adminId; } public void setAdminPw(String adminPw) { this.adminPw = adminPw; } public void setSub_adminId(String sub_adminId) { this.sub_adminId = sub_adminId; } public void setSub_adminPw(String sub_adminPw) { this.sub_adminPw = sub_adminPw; } public String getAdminId() { return adminId; } public String getAdminPw() { return adminPw; } public String getSub_adminId() { return sub_adminId; } public String getSub_adminPw() { return sub_adminPw; } } | cs |
main.java
1 2 3 4 5 6 7 8 9 10 11 12 | public static void main(String[] args) { AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationCTX.xml"); AdminConnection connection = ctx.getBean("adminConnection", 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(); } | cs |
admin.properties, sub_admin.properties
ApplicationConfig.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | @Configuration public class ApplicationConfig { @Value("${admin.id}") //Properties() 에서 값을 가져옴 private String adminId; @Value("${admin.pw}") //Properties() 에서 값을 가져옴 private String adminPw; @Value("${sub_admin.id}") //Properties() 에서 값을 가져옴 private String sub_adminId; @Value("${sub_admin.pw}") //Properties() 에서 값을 가져옴 private String sub_adminPw; @Bean public static PropertySourcesPlaceholderConfigurer Properties() { PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer(); Resource[] locations = new Resource[2]; //배열 선언 locations[0] = new ClassPathResource("admin.properties"); //경로1를 배열에 삽입 locations[1] = new ClassPathResource("sub_admin.properties"); //경로2를 배열에 삽입 configurer.setLocations(locations); return configurer; //properties() 객체 반환 } @Bean public AdminConnection adminConfig() { //AdminConnection 객체 반환 AdminConnection adminConnection = new AdminConnection(); adminConnection.setAdminId(adminId); adminConnection.setAdminPw(adminPw); adminConnection.setSub_adminId(sub_adminId); adminConnection.setSub_adminPw(sub_adminPw); return adminConnection; } } | cs |
반응형
'프로그래밍 정리 > Spring' 카테고리의 다른 글
Spring - Aop autoproxy방식,pointcut 종류 (0) | 2019.12.31 |
---|---|
Spring - Aop(관점 지향 프로그래밍, Aspect Oriented Programming) (0) | 2019.12.30 |
Spring - XML과 Bean을 이용해 .properties 값 가져오기 (0) | 2019.12.09 |
spring - Namespace 사용법 (0) | 2019.12.09 |
Spring - Environment객체(Property값 가져오기) (0) | 2019.12.09 |