Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jpa
- Spring Boot
- AOP
- Proxy
- QueryDSL
- 그리디
- 김영한
- Greedy
- 스프링 핵심 원리
- 알고리즘
- spring
- 백준
- 자바
- 스프링 핵심 기능
- JPQL
- http
- Exception
- Servlet
- 스프링
- 인프런
- Android
- java
- pointcut
- transaction
- JDBC
- Thymeleaf
- kotlin
- SpringBoot
- db
- springdatajpa
Archives
- Today
- Total
개발자되기 프로젝트
@Qualifier, 타입체크, annotaion만들기 본문
- 흠 근데 @Qualifier를 그냥 사용하면 문제가 있음
- @Qualifier("mainDiscountPolicy")라고 지정했다 해보자.
- 타입 체크 어떻게함??????????
- annotaion을 만들어서 해결할 수 있음.
1. annotaion 생성
- 우리가 만든 annotaion에 @Qualifier를 적용해 주자.
- 즉, 우리가 만든 annotaion을 사용하면 @Qualifier가 매칭이 된다.
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
@Qualifier("mainDiscountPolicy")
public @interface MainDiscountPolicy {
}
2. main으로 지정할 구현체에 @MainDiscountPolicy
- @MainDiscountPolicy를 적용하면 @Qualifier를 적용한 효과가 있다.
@Component
@MainDiscountPolicy
public class RateDiscountPolicy implements DiscountPolicy{
3. 가져다 쓰는 곳에 적용
- 마찬가지로 사용하는 곳에 붙이면 @Qualifier가 일치하는 빈을 찾아올 수 있다.
@Component //@RequiredArgsConstructor //final 붙은 필드를 받는 생성자를 만듦 public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; //이렇게하면 인터페이스에만 의존함. //private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); @Autowired public OrderServiceImpl(MemberRepository memberRepository, @MainDiscountPolicy DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; }
4. 정리
- annotaion에는 상속 개념이 없음
- 여러 annotaion을 모아서 사용하는거는 스프링에서 지원해주는것.
5. GitHub : 210730 @Qualifier + annotaion
'인프런 > [인프런] Spring 핵심원리 이해' 카테고리의 다른 글
스프링 빈 수동 등록 vs 자동 등록 (0) | 2021.07.30 |
---|---|
조회한 빈을 리스트, Map으로 받아보자 (0) | 2021.07.30 |
조회할 빈이 2개 이상일 경우? (0) | 2021.07.30 |
의존관계 주입, lombok (0) | 2021.07.29 |
생성자 주입을 선택해! (0) | 2021.07.29 |
Comments