인프런 커뮤니티 질문&답변

hooni님의 프로필 이미지

작성한 질문수

토비의 스프링 부트 - 이해와 원리

메타 어노테이션

해결된 질문

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가 메타 애노테이션(애노테이션에 붙은 애노테이션)이 될 수 있습니다.



hooni님의 프로필 이미지
hooni
질문자

2024. 06. 25. 17:05

앗.. 포함되어 있었군요... 감사합니다!!

hooni님의 프로필 이미지

작성한 질문수

질문하기