-
조회 빈이 2개 이상 - 문제spring/스프링 핵심 원리 강의 내용 정리 2023. 12. 11. 15:34
@Autowired 는 타입으로 조회한다
타입으로 조회하기 때문에 다음 코드와 유사하게 동작한다 (실제로는 더 많은 기능을 제공한다)
ac.getBean(DiscountPolicy.class)
스프링 빈 조회에서 학습했듯이, 타입으로 조회하면 선택된 빈이 2개 이상일 때 문제가 발생한다
DiscountPolicy 의 하위 타입인 FixDiscountPolicy , RateDiscountPolicy 둘다 스프링 빈으로 선언해보자에러가 생기는 모습
메시지를 읽어보면 하나의 빈을 기대했는데, 빈이 두개가 매칭 됐다는 문구가 적혀있다
이때 하위 타입으로 지정할 수 도 있지만, 하위 타입으로 지정하는 것은 DIP를 위배하고 유연성이 떨어진다
그리고 이름만 다르고, 완전히 똑같은 타입의 스프링 빈이 2개 있을 때 해결이 안된다
스프링 빈을 수동으로 등록해서 문제를 해결해도 되지만, 의존 관계 자동 주입에서 해결하는 여러 방법이 있다다음 영상으로 알아보자
'spring > 스프링 핵심 원리 강의 내용 정리' 카테고리의 다른 글
에노테이션 직접 만들기 (1) 2023.12.11 @Autowired 필드 명, @Qualifier, @Primary (0) 2023.12.11 롬복과 최신 트렌드 (0) 2023.12.11 생성자 주입을 선택해라 (0) 2023.12.11 옵션 처리 (0) 2023.12.11