애너테이션 정의와 사용 예제가 실행되는 순서
선언에 애너테이션 부착에서 시작해 처리 코드가 메타데이터를 읽어 의미 부여까지 값과 책임이 이동한다.
-
1
선언에 애너테이션 부착
기본 타입, String, Class, enum, 다른 annotation과 그 배열 등을 요소로 선언할 수 있습니다.
-
2
Retention에 따라 클래스 파일·런타임까지 유지
TYPE, METHOD, FIELD, PARAMETER, RECORD_COMPONENT 등 실제 소비자가 조사하는 위치만 허용합니다.
-
3
처리 코드가 메타데이터를 읽어 의미 부여
SOURCE는 컴파일 뒤 사라지고 CLASS는 클래스 파일에 남으며 RUNTIME은 리플렉션으로 읽을 수 있습니다.
실행 순서 RUNTIME 유지와 METHOD 대상이므로 실행 중 save 메서드에서 Audited 값을 읽을 수 있습니다.