어노테이션 직접 만들기
- 앞서 학습한
@Qualifier
라는 좋은 빈 판독기를 알아보았다.
하지만 이 어노테이션의 단점은 컴파일시 타입체크가 안 된다. -> 그래서 어노테이션을 집적 만들어서 문제를 해결할 수 있다.
1. 어노테이션 생성
- 우선
프로젝트.프로젝트명
밑에 이름은 annotation이라 하여 package를 하나 만들자. 그리고 해당 패키지 밑에 annotaion을 하나 만드는데 이름은 자유로 하면 된다.
- 참고로 그냥 JavaClass 생성한 다음 제일 밑에 보면 annotaion이 존재한다.
- 그래서 다음은
cmd + O
ctrl + n
으로 Go to class를 연 다음 qualifier를 검색하면 qualifier를 만들 때 뭐뭐가 필요한지 알 수 있다.
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
@Qualifier("mainDiscountPolicy")
public @interface MainDiscountPolicy {}
- 그리고 마지막으로 식별자 Qualifier를 추가하면 컴파일 과정에서도
@Qualifier("mainDiscountPolicy")
역할을 @MainDiscountPolicy
가 대신하기 때문에 타입 체크도 가능해진다.
@Component
@MainDiscountPolicy
public class RateDiscountPolicy implements DiscountPolicy{...}
- 그리고 개발시 IDE에서
cmd + B
ctrl + B
로 사용하는 코드 추적도 된다.