이 글은 김영한 님의 스프링 핵심 원리 - 기본편(https://inf.run/ZtdV)을 수강하며 정리한 글입니다.
@Qualifier("mainDiscountPolicy")
괄호 안의 문자는 컴파일 시 타입 체크가 안 돼서 오타가 발생해도 오류를 잡을 수 없는데,
애노테이션을 만들어서 문제를 해결할 수 있다.
📚 annotation
🍥 MainDiscountPolicy
애노테이션은 상속의 개념이 없다.
때문에 일반 @Qualifier처럼 사용할 수 있도록 @Qualifier에 붙은 애노테이션들을 가져와서 붙여 준다. (1 ~ 3줄)
단지 오타를 방지하기 위해 @Qualifier를 사용하는 것과 같은 하나의 애너테이션을 만든 것뿐이다.
Ctrl + B 단축키를 통해 사용되는 곳을 쉽게 알 수 있어서 편하다.
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Qualifier("mainDiscountPolicy")
public @interface MainDiscountPolicy {
}
@Component
@MainDiscountPolicy //오타가 나도 쉽게 알아챌 수 있다.
public class RateDiscountPolicy implements DiscountPolicy {}
@Autowired
public OrderServiceImpl(MemberRepository memberRepository,@MainDiscountPolicy DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
'Back-End > Spring' 카테고리의 다른 글
[Spring] 빈 생명주기 콜백 (0) | 2022.03.26 |
---|---|
[Spring] 의존관계 자동 주입 - 조회한 빈이 모두 필요할 때, List, Map (0) | 2022.03.21 |
[Spring] 의존관계 자동 주입 - 조회 빈이 2개 이상일 때: @Autowired 필드 명, @Qualifier, @Primary (0) | 2022.03.21 |
[Spring] 의존관계 자동 주입 방법 (0) | 2022.03.20 |
[Spring] 🌟 컴포넌트 스캔과 의존관계 자동 주입 (0) | 2022.03.19 |
댓글