-
(스프링 기본) 23 - 어노테이션 만들기개발/Spring 2024. 10. 28. 15:18
package hello.core.annotation; import org.springframework.beans.factory.annotation.Qualifier; import java.lang.annotation.*; @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented @Qualifier("mainDiscountPolicy") public @interface MainDiscountPolicy { }
다음과 같이 @Qualifier에 있는 에노테이션을 가져오고,
어노테이션 타입의 파일을 만들고 이름을 정해준다.
그리고 사용해주고자 하는 곳에 어노테이션을 달면 오류 없이 불러올 수 있다.
@Component @MainDiscountPolicy public class RateDiscountPolicy implements DiscountPolicy{
만들어준 어노테이션을 사용하고자 하는 구현체에 달아준다.
@Autowired public OrderServiceImpl(MemberRepository memberRepository, @MainDiscountPolicy DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; }
실제 사용하는 코드에도 해당 어노테이션을 붙여준다.
이렇게 어노테이션을 직접 만들면 만든 어노테이션 페이지에서
ctrl + b 하면 해당하는 어노테이션을 사용하는 사용를 확인할 수 있다. (코드 추적)
어노테이션은 상속 개념이 없다.
어노테이션을 모아 사용하는 기능은 스프링 프레임워크가 제공하는 기능이다.
출처 : 김영한 스프링 핵심 원리 - 기본편
'개발 > Spring' 카테고리의 다른 글
(스프링 기본) 25 - 의존 관계 등록 올바른 실무 기준 (자동, 수동) (0) 2024.10.28 (스프링 기본) 24 - 조회된 빈이 모두 필요할 때 (List, Map) (0) 2024.10.28 (스프링 기본) 22 - 조회된 빈이 2개 이상 문제 (@Qualifier, @Primary) (0) 2024.10.28 (스프링 기본) 21 - 롬복 사용하기 (@Getter, @Setter + 생성자 주입 깔끔하게 넣기) (0) 2024.10.28 (스프링 기본) 20 - 생성자 주입 선택해야 하는 이유 (1) 2024.10.28