WEB/Back-end

어노테이션(Annotation) (Java)

최새벽 2024. 7. 18. 20:10

어노테이션

  • @AnnotationName: 클래스 또는 인터페이스를 컴파일하거나 실행할 때 어떻게 처리해야 할 것인지 알려주는 설정 정보
    • 컴파일 시 사용하는 정보 전달 (예: @Override)
    • 빌드 툴이 코드를 자동으로 생성할 때 사용하는 정보 전달 (예: lombok)
    • 실행 시 특정 기능을 처리할 때 사용하는 정보 전달
  • 아무런 동작을 하지 않고 그냥 컴파일 시 설정 정보 만을 전달함

어노테이션 정의

  • 어노테이션 정의하기
public @interface AnnotationName{
    String prop1(); // 속성 타입과 속성명
    int prop2() default 1; // default 뒤에 쓰면 기본값(어노테이션 사용시 생략 가능)
}
// => @AnnotationName(prop1 = "~~~", prop2 = 2)
// => @AnnotationName(prop1 = "~~~")
  • value
public @interface AnnotationName{
    String value(); 
    // 어노테이션을 쓸 때 @AnnotationName(value = "`~~")말고
    // 그냥 바로 어노테이션을 쓸 때 @AnnotationName("~~~")과 같은 형식으로 사용 가능함.
}
  • 기타 적용 대상 및 유지 정책도 지정 가능함
    • @Target: 적용 대상 설정 키워드
    • @Retention: 유지 정책 설정 키워드