KU-BESTA / pro-spring-5

전문가를 위한 스프링5를 읽고 공부합니다.
1 stars 0 forks source link

애너테이션 #15

Open bong01 opened 2 years ago

bong01 commented 2 years ago

애너테이션 정의

public @interface MyAnnotation {
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}

@Target : 애너테이션이 적용 가능한 대상

ex. TYPE, ANNOTATION_TYPE, FIELD, CONSTRUCTOR, METHOD

@Rentention

: 애너테이션이 유지되는 기간

ex. SOURCE, CLASS, RUNTIME

  • SOURCE: 소스파일에만 존재, 컴파일 후 클래스 파일에서는 사라짐
  • CLASS: 클래스 파일까지 존재, 런타임 시 사라짐 (Default)
  • RUNTIME: 런타임까지 존재, 리플렉션을 통해 애너테이션 정보를 사용 가능

참고: https://joel-dev.site/83?category=1018629

ksi05503 commented 2 years ago

기본 애너테이션에 들어가보면 저런 Retention 이나 Target이 들어가있다니, 자주 확인해야겠다 애너테이션도 인터페이스 느낌 애너테이션 어떨때 사용자정의로 활용하는지 찾아봐야겠군