CH9-6 · FLOW

애너테이션 정의와 사용 예제가 실행되는 순서

선언에 애너테이션 부착에서 시작해 처리 코드가 메타데이터를 읽어 의미 부여까지 값과 책임이 이동한다.

  1. 1
    선언에 애너테이션 부착

    기본 타입, String, Class, enum, 다른 annotation과 그 배열 등을 요소로 선언할 수 있습니다.

  2. 2
    Retention에 따라 클래스 파일·런타임까지 유지

    TYPE, METHOD, FIELD, PARAMETER, RECORD_COMPONENT 등 실제 소비자가 조사하는 위치만 허용합니다.

  3. 3
    처리 코드가 메타데이터를 읽어 의미 부여

    SOURCE는 컴파일 뒤 사라지고 CLASS는 클래스 파일에 남으며 RUNTIME은 리플렉션으로 읽을 수 있습니다.

실행 순서 RUNTIME 유지와 METHOD 대상이므로 실행 중 save 메서드에서 Audited 값을 읽을 수 있습니다.