본문 바로가기

강의 내용 정리/스프링 핵심 원리 기본

7-5. 조회 빈이 2개 이상 - 문제 ~ 7-6 @Autowired필드명, @Qualifier, @Primary

밑에 3줄 아주 중요.

 

 

 

문제 : DiscountPolicy를 주입받으려고 하는데 ( @Autowired ) 그 타입의 빈이 두개가 있다. ( 빈으로 등록된 구현체가 두개 ) -> 밑에서 해결.

---------------------------------------- 7-6. @Autowired 필드 명, @Qualifier, @Primary

 

 

 

3가지 방법이 있다.

 

 

 

 

1. @Autowired 필드명 매칭 or 파라미터명

 

진짜 미쳤다....

스프링은 매칭 할 때 자식타입을 싹 가져옴.

필드 인젝션일 때도 됨.

물론 처음부터 필드명을 보진 않고 조회 빈이 두개 이상일 때 추가로 동작하는 기능이다.

 

 

 

 

 

 

 

2. Qualifier 사용 ( 추가 구분자를 붙여주는 방법 ( 빈이름 변경이 아님 ) )

서로
서로 이어줘야함.

 

 

 

 

 

 

3. @Primary : 자주사용

 

 

DiscountPolicy 타입의 빈을 주입할 때 RateDiscountPolicy 빈 먼저 사용할 거야!

올릴 떄 가장 우선순위 높은 빈 지정해두기.

 

왜 좋냐 : @Qualifier 처럼 드럽게 붙일게 없음. 

자주 쓰는 빈에 @Primary 걸어주자!!!!!!! ex) 메인 DB를 @Primary로 쓰자.

보조DB는 @Qualifier로 쓰자 ( 팀원끼리 룰을 정한다. )

 

@Qualifier가 더 세세히 설정하기 떄문에

 

Recent Posts
Popular Posts
Recent Comments