🧐강의🧐
https://www.inflearn.com/course/%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/dashboard
🚨문제 상황🚨
☑️ @Qualifier 사용 시 컴파일 과정에서 타입 체크 안됨
💡해결 방법💡
✅ 애노테이션 직접 생성 후 주입하기
1. Annotation 생성
· main/java/hello.core/annotation/MainDiscountPolicy
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER,
ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Qualifier("mainDiscountPolicy")
public @interface MainDiscountPolicy {}
2. 생성한 애노테이션을 코드에 추가
· RateDiscountPolicy
@Component
@MainDiscountPolicy // <---
public class RateDiscountPolicy implements DiscountPolicy{...}
· OrderServiceImpl
@Component
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
@Autowired
public OrderServiceImpl(MemberRepository memberRepository, @MainDiscountPolicy DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
...
}
'Spring > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
[빈 생명주기 콜백] 스프링 빈 생명주기 콜백 지원하는 방법 3가지 - 인터페이스, 설정 정보, 애노테이션 (0) | 2023.12.29 |
---|---|
[의존 관계 자동 주입] 해당 타입의 스프링 빈 모두 조회 - List & Map (0) | 2023.12.26 |
[의존 관계 자동 주입] 조회할 빈이 2개 이상일 때 (4) | 2023.12.22 |
[의존 관계 자동 주입] Lombok 적용하는 방법 (0) | 2023.12.20 |
[의존 관계 자동 주입] 자동 주입 대상 옵션으로 처리하기 (0) | 2023.12.19 |