[Spring] 조회 빈이 두 개 이상일 때 해결편

2023. 10. 14. 23:49Spring

크게 세가지 방법이 있다.

첫 번째는 필드나 파라미터의 이름을 원하는 빈의 이름으로 바꿔주면 @Autowired는 매칭을 해준다.

예를 들어, rateDiscountPolicy라고 파라미터를 정해주면 이름이 rateDiscountPolicy인 빈을 선택한다.

두 번째는 @Qualifier(name)을 붙여주고 파라미터 왼쪽에 지정하고자 하는 @Qualifier(name)을 붙여준다.

세 번째는 @Primary를 활용한다. @Primary를 붙여주면 이것이 붙지 않은 빈보다 우선순위가 높아진다.

실무에서 주로 활용하는 방법은 메인 데이터베이스에는 @Primary를 붙여주고 서브에는 @Qualifier를 붙여준다. 그리고 필요할 때면 @Qualifier로 주입한다. @Qualifier로 지정한 것이 @Primary보다 우선순위가 더 높기 때문이다.

 

@Autowired는 먼저 타입으로 빈을 찾고 두 개이상의 빈이 조회된다면 매개변수나 필드로 매칭한다.

필드 주입할 필드명을 같게 해주면 그걸 주입해준다.

 

Reference


https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55378 

 

학습 페이지

 

www.inflearn.com