Spring

spring ApplicationContext, @primary, @qualifier

Vagins 2021. 8. 27. 00:21

21.08.26

개강 준비 + 21.09.05 에 있을 sqld 시험 준비 때문에 포스팅을 잠깐 쉬었습니다.

앞으로는 Spring 5 recipe의 내용을 차례로 정리해볼 생각입니다.

상당히 두꺼운 책이므로 헷갈렸던 부분 및 아예 모르던 기능 위주로 찾아가며 정리하겠습니다.

 

 

 

1. ApplicationContext

 

먼저 스프링 컨테이너(IOC container)의 종류는 bean factory와 applicationContext가 있습니다.

applicationContext는 spring에서 핵심적인 인터페이스라고 생각합니다.

beanFactory를 상속 받으며 다양한 기능을 합니다. (둘의 차이점은 Bean 객체가 생성되는 시점에 차이가 있습니다.)

아무튼 applicationContext는 빈의 생성, 관계 설정 들의 제어를 총괄합니다.

 

 

 

 

2. 배열형 프로퍼티에 @Autowired 붙이기, required 속성값

 

1. 만약에 private Abc[] abc; 같은 배열형 프로퍼티에 @autowired를 붙이면 스프링은 매치된 빈을 모두 찾아 자동 연결합니다.

2. autowired에 (requited = false)를 지정하면 spring이 bean을 못 찾더라도 그냥 치나치게 할 수 있습니다.

( spring은 기본적으로 필수 프로퍼티에 해당하는 빈을 찾지 못하면 예외를 던집니다. )

 

이런 방식이 가능하다는 것을 책을 통해 처음 알았기에 간단하게 정리해 보았습니다.

이래서 기본부터 차근히 공부해야 하는것 같습니다.

 

 

 

 

 

3. @primary, @qualifier

 

@primary는 후보 bean을 명시하는 기능을 합니다.

예를 들어 여러빈이 자동 연결대상일 때 특정한 bean에 우선권을 부여하는 식입니다.

@qualifier는 직접 이름을 주어 후보 bean을 명시하는 기능을합니다.

예를 들어 @qualifier("abc") 로 선언을 해주면 IOC container에서 이름이 abc인 bean을 찾아 해당 프로퍼티에 연결해줍니다.

 

 

 

 

 

 

 

쓰면서도 정확하지 않았던 기능들을 차근히 다시 정리해보았습니다.

Spring 5 recipe 를 통해 개념을 하나하나 다시 짚고 있습니다.