@Qualifier의 정의
조회하고 싶은 Bean과 타입이 동일한 다른 Bean 이 한 개 이상 있다면 오류가 납니다.
이럴 때 원하는 빈에게 조회할 때 사용할 별명을 @Qualifier로 지정해줄 수 있습니다.
사용 예시
빈 등록
@Component
@Qualifier("mainDiscountPolicy") //
public class RateDiscountPolicy implements DiscountPolicy {
}
의존성 주입
@Autowired
public OrderServiceImpl(
MemberRepository memberRepository,
@Qualifier("mainDiscountPolicy") DiscountPolicy discountPolicy
) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
코드 설명
빈 등록할 때 해당 빈에 @Qualifier를 통해 별명을 지어주고, 의존성을 주입할 때 @Qualifier를 이용하여 지어놓은 별명을 넣어 의존성 주입을 합니다.