1. @Autowired 추가 매칭
- 타입 매칭을 시도하고, 이때 bean이 2개 이상일 경우 필드 이름, 파라미터 이름으로 추가 매칭한다.
//기존 코드
@Autowired
private DiscountPolicy discountPolicy;
//적용 코드
@Autowired
private DiscountPolicy rateDiscountPolicy;
2. @Primary
- 우선순위를 지정한다.
@Primary
@Component
public class RateDiscountPolicy implements DiscountPolicy {}
@Component
public class FixDiscountPolicy implements DiscountPolicy {}
3. @Qualifier
- 추가 구분자를 붙여준다.
- @Primary 보다 우선순위가 높다.
@Component
@Qualifier("rateDiscountPolicy")
public class RateDiscountPolicy implements DiscountPolicy {}
@Component
@Qualifier("fixDiscountPolicy")
public class FixDiscountPolicy implements DiscountPolicy {}
/**
@Autowired
public DiscountService(@Qualifier("rateDiscountPolicy") DiscountPolicy discountPolicy) {
this.discountPolicy = discountPolicy;
}
**/
참고
- 『스프링 핵심 원리 - 기본편』
'Spring' 카테고리의 다른 글
Bean Scope (0) | 2021.10.16 |
---|---|
Bean LifeCycle & Callback (0) | 2021.10.11 |
Lombok library가 제공하는 애노테이션 (0) | 2021.10.11 |
다양한 의존관계 주입 방법 (0) | 2021.10.11 |
Spring container에 bean을 등록하는 2가지 방법 (0) | 2021.10.09 |