코드 그라데이션
Anotation의 종류와 지속 기간 본문
Annotation의 종류
- Built-in Annotation : 자바에서 기본적으로 제공하는 어노테이션 (ex. @**Override)**
- Meta Annotation : 커스텀 어노테이션을 만들수 있게 제공된 어노테이션. (ex. **@Target)**
- Custom Annotation : 사용자가 직접 정의한 어노테이션 (java 외 spring, junit 등.. 모두 포함) (ex. **@Test)**
Annotation 만들기
- Meta Annotation 을 사용해서 만든다.
- @Target
- 말 그대로 어노테이션의 타겟을 지정하는 것입니다.
- FIELD : 해당 어노테이션을 Feild에 붙일때
- METHOD, TYPE : Class나 Enum 등의 어떤 대상을 위한 어노테이션인지 타입에 붙일 때
- 그외 PARAMETER, CONSTRUCTOR
- 말 그대로 어노테이션의 타겟을 지정하는 것입니다.
어노테이션의 지속기간(@Retention)
=> (어디까지 영향을 미칠지 = 용도와 관련)
-
- SOURCE : 소스 코드(.java)까지 남아있는다.
- 컴파일 과정에서 어노테이션 정보는 사라짐
- CLASS : 클래스 파일(.class)까지 남아있는다.(=바이트 코드)
- 런타임시 유지안됨
- RUNTIME : 런타임까지 남아있는다.(=사실상 안 사라진다.)
- Reflection API 로 어노테이션 정보 조회 가능
- SOURCE : 소스 코드(.java)까지 남아있는다.
728x90
'Spring > 개념 정리' 카테고리의 다른 글
Lombok 라이브러리에서 자주 사용하는 어노테이션 (0) | 2023.01.30 |
---|---|
의존성 주입과 제어의 역전 (0) | 2023.01.21 |
스프링 Bean과 Component (0) | 2023.01.16 |
스프링부트 리다이렉트 종류 / 모듈과 모듈화 (0) | 2023.01.15 |
헷갈리는 어노테이션 정리(1월 초반부) (0) | 2023.01.14 |
Comments