코드 그라데이션

Anotation의 종류와 지속 기간 본문

Spring/개념 정리

Anotation의 종류와 지속 기간

완벽한 장면 2023. 1. 17. 13:40

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 로 어노테이션 정보 조회 가능

 

참고 : https://jeong-pro.tistory.com/234 

728x90
Comments