코드 그라데이션
조회 빈이 2개 이상 - 문제 본문
조회 빈이 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
'Spring > 핵심 원리 구현' 카테고리의 다른 글
애노테이션 직접 만들기 (0) | 2024.02.07 |
---|---|
조회 빈이 2개 이상 - 해결 (0) | 2024.02.07 |
Lombok과 최신 트렌드 (0) | 2024.02.06 |
생성자 주입을 선택하라 (1) | 2024.02.05 |
옵션 처리 (0) | 2024.02.04 |
Comments