Recent Posts
Recent Comments
Link
«   2024/04   »
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
Archives
Today
Total
관리 메뉴

빅데이터 AI 인공지능 IT 꿀팁 아이팁

Spring : Annotation 본문

JAVA

Spring : Annotation

아이팁 2021. 4. 7. 20:19

Annotation

 

사전적 의미로는 주석이라는 뜻

 

자바에서 Annotation은 코드 사이에 주석처럼 쓰이고

 

특별한 의미, 기능을 수행하도록 하는 기술입니다.

 

프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있습니다.

 

 


 

1. Configuration 을 이용한 Spring Bean 설정

 

Java Config 로 Bean 을 설정할때는 XML Config 과 같이

 

Class 로 여러개의 Bean을 관리하는 방식이 있다.

 

ApplicationConfig.java

 

 

@Configuration 을 클래스에 적용을 하고 

 

@Value를 이용해 외부 파일에 있는 값을 불러와 줍니다.

 

 

 

@Bean 을 이용해 Bean 을 생성해 줍니다.

 

 

 

 

1. // Bean 1

  

PropertySourcesPlaceholderConfigurer 로 Properties 를 불러옵니다.

 

Resource 를 담기위한 배열을 locations 로 생성해주고 

 

new ClassPathResource() 로 외부 파일을 지정해 줍니다.

 

 

 

 

2. // Bean 2

 

Bean 을 생성해 주고 Class 와 함수를 지정해 줍니다.

 

AdminConnection 을 불러와 외부 파일에서 가져온 값을 넣어줍니다.

 

 

 

3. AdminConnection

 

 

Implements 로 InitializingBean, DisposableBean 을 불러옵니다.

 

 

private 로 adminId, pw 와 sub_adminid, pw 를 지정해줍니다.

 

getter, setter 를 생성해줍니다.

 

 

 

destroy 와 afterPropertiesSet 를 오버라이딩 해줍니다.

 

 

 

 

 

 

4. Main Class

 

 

AnotationConfigApplicationContext 로 ApplicationConfig.class 를 등록해줍니다.

 

ApplicationConfig 안의 내용을 읽기 위해 등록을 해주는 것입니다.

 

 

그 다음 AdminConnection 을 getBean으로 받아와 ApplicationConfig 안의 내용을 가져옵니다.

 

 

 

 

결과

 

xml 파일을 불러오지 않고 외부 파일을 이용해 내용을 가져온 모습입니다.

 

오늘은 여기까지 입니다.

 

 

 

 

 

 


사용된 Annotation

 

 

@Configuration 을 클래스에 적용하고 

  • @Configuration @Bean을 부를 수 있다.

 

@Bean 을 해당 Class의 메소드에 적용하면

  • @Bean 은 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean 으로 만들려 할 때 사용되는 Annotation이다.

 

 

@Autowired로 Bean 을 부를 수 있다.

  • @Autowired 속성 (field), Setter method, Constructor (생성자) 에서 사용하며 Type에 따라 알맞은 Bean을 주입
  • 무조건적인 객체에 대한 의존성을 주입시킨다.
  • 스프링이 자동적으로 값을 할당한다.

 

@Value

  • Properties에서 값을 가져와 적용할때 사용한다.

 

'JAVA' 카테고리의 다른 글

Spring : DispatcherServlet  (0) 2021.04.09
Spring : Environment 예제  (2) 2021.04.07
Spring : Scope / Singleton, Prototype  (0) 2021.04.06
Spring : Pencil 인터페이스  (0) 2021.04.06
Spring : 개발환경 설정  (0) 2021.04.05