@Meta Annotation에 대해서 알아보자
2023. 2. 24. 15:03ㆍBackEnd(Java)/Spring Boot
✅ 아래 내용들에 대해서 알아보자
- 메타 어노테이션이란
- 메타 어노테이션 종류
- 예시 코드
메타 어노테이션
메타 어노테이션이란 java 코드에 메타 정보를 추가할 수 있는 구문의 한 형태. 클래스, 메서드, 변수, 매개변수 및 java 패키지에 어노테이션을 달 수 있다. 해당 어노테이션을 jvm 런타임 및 리플렉션을 통해 읽게 된다.
메타 어노테이션 종류
1. @Target
어노테이션을 어떤 요소에 적용할지 지정
@Target(ElementType.TYPE) | 클래스의 어떤 요소에나 적용 가능, 기본값 |
@Target(ElementType.FIELD) | 클래스의 특정 필드 |
@Target(ElementType.METHOD) | 클래스의 메서드 |
@Target(ElementType.PARAMETER) | 메서드의 파라미터 |
@Target(ElementType.CONSTRUCTOR) | 생성자 |
@Target(ElementType.LOCAL_VARIABLE) | 로컬 변수 |
@Target(ElementType.ANNOTATION_TYPE) | 어노테이션 타입 |
2. @Retention
어노테이션이 얼마나 유지될지 범위를 지정
@Retention.SOURCE | 어노테이션이 소스 코드에만 이용 가능하며 컴파일 후에는 메모리에서 사라짐 |
@Retention.CLASS | 어노테이션이 .class파일에 존재하지만 런타임에는 사라짐 |
@Retention.RUMTIME | 어노테이션이 런타임까지 남아있음 |
3. @Inherited
서브 클래스가 부모 어노테이션을 상속받도록 한다
4. @Documented
해당 어노테이션을 javadoc에 포함한다.
예시 코드
Configuration 어노테이션을 보면 @Target = ElementType.TYPE, @Retention = RUNTIME 이란 것을 알 수 있다.
따라서 해당 어노테이션은 클래스의 어떤 요소에든 적용 가능하고, 어노테이션이 런타임까지 남아 있는 것을 알 수 있다.
참고자료
반응형
'BackEnd(Java) > Spring Boot' 카테고리의 다른 글
JWT & OAuth 정리 (0) | 2023.06.01 |
---|---|
스프링 IoC/DI 찍먹 (0) | 2023.02.24 |
스프링 이벤트 처리 (0) | 2023.01.20 |
Doesn't say anything about org.gradle.plugin.api-version (required '7.6') (0) | 2023.01.03 |
@Async에 대한 이해 (0) | 2022.11.21 |