코드 그라데이션

조회 빈이 2개 이상 - 문제 본문

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

'Spring > 핵심 원리 구현' 카테고리의 다른 글

애노테이션 직접 만들기  (0) 2024.02.07
조회 빈이 2개 이상 - 해결  (0) 2024.02.07
Lombok과 최신 트렌드  (0) 2024.02.06
생성자 주입을 선택하라  (1) 2024.02.05
옵션 처리  (0) 2024.02.04
Comments