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
: 유지 정책 설정 키워드