반응형

@Qualifier 와 같이 이름으로 Annotation 을 지정하면 complile 타임에서는 오류가 발생하지 않아 찾기가 어렵습니다.

@Component
@Qualifier("mainPolicy")

위의 경우 "mainPlicy" 로 Qualfier 를 지정하였지만 생성자로 사용할때 등 에서 오타가 발생하더라도 알수가 없습니다.

 

그래서 annotation 을 직접 만들어서 사용하면 이러한 부분을 방지하고 complie 타임에 오류를 확인할 수 있습니다.

Interface 로 신규 생성합니다.

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
@Qualifier("mainDiscountPolicy")
public @interface MainPolicy {
}

노랑색 부분을 제외하고는 이미 정의된 Qualifier 에서 가져오면 됩니다.

그 후 Component 에서 Qualfier 를 선언할때 아래와 같이 해주면 됩니다.

@Component
@MainPolicy

 

반응형

+ Recent posts