애노테이션 만들기

naeganugu·2022년 7월 26일
0

스프링 마스터🌱

목록 보기
15/19

전 포스트에서 @Qualifier("mainDiscountPolicy")를 알아봤다. 하지만 이 경우는 직접 "mainDiscountPolicy" 문자를 적어주기 때문에 컴파일 시 타입체크가 안된다. 컴파일 에러는 세상에서 제일 좋은 오류....

이럴 때는 어노테이션을 직접 만들어서 문제를 해결할 수 있다.

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Qualifier("mainDiscountPolicy")
public @interface MainDiscountPolicy {
}
@Component
@MainDiscountPolicy
public class RateDiscountPolicy implements DiscountPolicy {}

@Autowired
public OrderServiceImpl(MemberRepository memberRepository, @MainDiscountPolicy DiscountPolicy discountPolicy) {
	this.memberRepository = memberRepository;
	this.discountPolicy = discountPolicy;
  }

이런 식으로 어노테이션을 정의해서 사용한다.



출처: 스프링 핵심 원리 - 기본편

profile
seungseung-zanggu

0개의 댓글