on
[Spring] annotation 직접 만들기
[Spring] annotation 직접 만들기
728x90
@Qualifier을 사용하여 조건을 추가했을 때 문자열의 오타를 잡아주지 못하기 때문에 의도했던 대로 적용이 되지 않을 수도 있다.
이를 위해서 따로 annotation을 만드는 방법이 있다.
1. Annotation 클래스를 생성한다
2. 클래스를 작성한다
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented @Qualifier("mainDiscountPolicy") public @interface MainDiscountPolicy { }
@Target ~ @Documented 어노테이션은 직접 @Qualifier 클래스에서 가져왔다.
생성한 어노테이션 클래스에 @Qualifier을 붙이고 안에 이름을 지정한다.
이렇게 하면 어노테이션이 완성된다.
MainDiscountPolicy가 @Qualifer을 상속을 하는 것 같은 모양새인데, 원래 어노테이션은 상속을 하지 못한다. 이런 기능은 스프링에서 지원해 주는 기능이다.
어노테이션을 붙인 모습
@Qualifier이 들어갈 대신에 @MainDiscountPolicy를 붙여 @Qualifier을 적용하는 효과를 낼 수 있다.
728x90
from http://sdardew-valley.tistory.com/134 by ccl(A) rewrite - 2021-12-08 23:01:20