본문 바로가기
Spring

[Spring] @Autowired 의존관계 주입시 조회되는 빈이 여러개일때

by happyhelen 2021. 11. 29.

 

** 공유가 아닌 개인 공부에 목적을 둔 글입니다

** 설명이 불충분할 수 있으며 잘 정리된 글이 아닐 수도 있습니다

 

 

 

 

@Autowired 는 타입으로 빈을 조회하는데, 타입으로 조회했을 때 등록된 빈이 여러개일 때 오류가 발생한다

 

 

 

@Autowired 로 의존관계 주입한 클래스

 

 

 

 

@Component 로 빈 등록을 한 클래스, 둘이 같은 타입이다 (DiscountPolicy)

 

 

 

 

@ComponentScan 을 넣은 AutoAppConfig 클래스를 설정정보로 넘겨주고 스프링 컨테이너를 생성하고 테스트

 

 

 

 

이때 나타나는 오류

 

NoUniqueBeanDefinitionException

 

 


타입 매칭 결과가 여러개일 때, 필드 이름, 파라미터 이름으로 빈 이름을 2차 매칭 한다 

 

DiscountPolicy discountPolicy -> DiscountPolicy rateDiscountPolicy 로 이름을 바꿔 구분이 가능하게 해주었다