* @Autowired 어노테이션을 활용한 의존성 주입의 한계
- 지난 강의에서는 @Autowired은 자료형이 일치하는 객체는 자동으로 주입 되었음
- 하지만, 둘 이상의 객체가 의존성 주입의 타겟이 된다면 @Autowired만으로는 객체 주입을 할 수 없음 -> 오류 발생
(의문: 무대 위에서 가수라는 인터페이스에서 뻗어나온 발라드 가수도, 힙합 가수도, 댄스 가수도
번갈아 가면서 노래를 해야하는 경우에는 어떻게 해야할까?)
- 둘 이상의 객체가 주입의 타겟이 되는 경우는 특정 객체를 지목해서 주입해야함. 이 때, 사용하는 어노테이션이 @Qualifier
- cf) @Inject = @Autowired : @Inject는 자바에서 쓰이는 의존성 주입 어노테이션
* @Qualifier 어노테이션
- @Autowired 바로 아래에 사용
- @Qualifier("객체명") : 객체명은 보통 소문자 작성(멤버변수명) , 똑같지만 정확한 정보는 빈 컨테이너에 적힌 변수명으로!!
- 디폴트 생성자가 꼭 필요
- 한계 : 동시에 무대 위에서 발라드 가수도, 힙합 가수도, 댄스 가수도 노래를 할 수는 없음. 번갈아가면서는 가능하지만. -> xml 파일 이용
* @Resource 어노테이션
- @Autowired + @Qualifier 역할을 동시에 하는 어노테이션
- 주입과 동시에 객체를 지정해주는 역할
- @Resource(name="객체명") : @Autowired와 함께 쓰이지 않고 단독으로 사용
*연습문제
'SPRING' 카테고리의 다른 글
Controller 작성 - 일반 자료형 / 폼 / ArrayList (0) | 2020.08.24 |
---|---|
DI 의존성 주입 - xml 파일 분리하기 (0) | 2020.08.24 |
DI 의존성 주입 - xml 파일 <bean> <constructor-arg> (0) | 2020.08.24 |
DI 의존성 주입 - Java / @Component, @Autowired (0) | 2020.08.23 |
스프링 프레임워크 정의 / 특징 (0) | 2020.08.22 |