[개발] - Spring/핵심 원리 구현
조회 빈이 2개 이상 - 문제
완벽한 장면
2024. 2. 6. 01:58
조회 빈이 2개 이상 - 문제
@Autowired 는 타입(Type)으로 조회한다.
@Autowired
private DiscountPolicy discountPolicy
타입으로 조회하기 때문에, 마치 다음 코드와 유사하게 동작한다. (실제로는 더 많은 기능을 제공한다.)
ac.getBean(DiscountPolicy.class);
스프링 빈 조회에서 학습했듯이 타입으로 조회하면 선택된 빈이 2개 이상일 때 문제가 발생한다.
- DiscountPolicy 의 하위 타입인 FixDiscountPolicy , RateDiscountPolicy 둘다 스프링 빈으로 선언해보자.
1. FixDiscountPolicy.java
@Component
public class FixDiscountPolicy implements DiscountPolicy {}
2. RateDiscountPolicy.java
@Component
public class RateDiscountPolicy implements DiscountPolicy {}
그리고 의존관계 자동 주입을 실행해놓고
이렇게 해놓고 전체 테스트 실행하면
basicScan() 메서드가 에러 나온다.
메시지는
자세한 메시지는 다음과 같다.
문맥 파악을 위해 들여쓰기, 문장구분, 띄어쓰기 등의 약간 편집을 하였다.
결국 빈 하나만 매칭되길 기대했는데, 두 개가 있어서 에러가 터졌다는 것.
다음 포스팅에서...!
728x90
반응형