문제 : DiscountPolicy를 주입받으려고 하는데 ( @Autowired ) 그 타입의 빈이 두개가 있다. ( 빈으로 등록된 구현체가 두개 ) -> 밑에서 해결.
---------------------------------------- 7-6. @Autowired 필드 명, @Qualifier, @Primary
3가지 방법이 있다.
1. @Autowired 필드명 매칭 or 파라미터명
스프링은 매칭 할 때 자식타입을 싹 가져옴.
물론 처음부터 필드명을 보진 않고 조회 빈이 두개 이상일 때 추가로 동작하는 기능이다.
2. Qualifier 사용 ( 추가 구분자를 붙여주는 방법 ( 빈이름 변경이 아님 ) )
3. @Primary : 자주사용
올릴 떄 가장 우선순위 높은 빈 지정해두기.
왜 좋냐 : @Qualifier 처럼 드럽게 붙일게 없음.
자주 쓰는 빈에 @Primary 걸어주자!!!!!!! ex) 메인 DB를 @Primary로 쓰자.
보조DB는 @Qualifier로 쓰자 ( 팀원끼리 룰을 정한다. )
'Java, Spring > 스프링 핵심 원리 기본' 카테고리의 다른 글
8-1. 빈 생명주기 콜백 시작 (0) | 2022.08.08 |
---|---|
7-7. 어노테이션 직접 만들기 ~ 7-9. 자동vs수동등록 (0) | 2022.08.07 |
7-3. 생성자 주입을 선택해라! ~ 7-4. Lombok (0) | 2022.08.07 |
7-1. 다양한 의존관계 주입 방법 ~ 7-2 (0) | 2022.08.07 |
6-4. 중복 등록과 충돌 (0) | 2022.08.07 |