해결된 질문
24.06.25 16:46 작성
·
99
·
수정됨
0
안녕하세요.
@Component 나 @Controller 또한 Target(ElementType.TYPE)으로만 설정되어있는데, 어떻게 @Configuration이나 @RestController 등과 같이 메타 어노테이션으로 설정될수있는건지 질문드립니다ㅜㅜ
답변 1
0
2024. 06. 25. 16:59
ElementType.TYPE의 소스코드를 보면
public enum ElementType {
/** Class, interface (including annotation interface), enum, or record
* declaration */
TYPE,
이렇게 설명이 달려있습니다. TYPE이라는 Target을 가진 애노테이션은 클래스와 인터페이스(애노테이션 인터페이스 포함), 이넘, 레코드가 애노테이션이 적용되는 타깃이라고 되어있죠.
메타 애노테이션은 다른 애노테이션에 부여한 애노테이션인데, @Controller, @Component가 의 Target이 TYPE이니까 다른 애노테이션의 애노테이션으로 부여할 수 있는 거죠. 그래서 @Controller에는 @Component가 @RestController에는 @Controller가 메타 애노테이션(애노테이션에 붙은 애노테이션)이 될 수 있습니다.
2024. 06. 25. 17:05
앗.. 포함되어 있었군요... 감사합니다!!