Spring/Spring
@Target, @Retention
마늘냄새폴폴
2022. 1. 24. 19:49
ElementType.ㅇ어노테이션을 만들 때 사용하는 어노테이션들이다. 어노테이션을 이용한 포인트컷을 구현할 때 등장했으며 궁금하기때문에 포스팅으로 남긴다.
구글링해보니 그렇게 어려운 내용은 아니었다.
@Target
@Target은 자신이 만든 어노테이션이 사용되게 될 자바 요소를 지정할 수 있다.
Target의 속성으로는
ElementType.ANNOTATION_TYPE
ElementType.CONSTRUCTOR
ElementType.FIELD
ElementType.LOCAL_VARIABLE
ElementType..METHOD
ElementType.PACKAGE
ElementType.PARAMETER
ElementType.TYPE
이렇게 여덟가지이다. 내가 주로 사용하게될 타겟은 메서드로 보인다. 메서드 레벨에 붙일 어노테이션은 ElementType.METHOD를 붙이면 되고 클래스 레벨에 붙일 어노테이션은 ElementType.TYPE을 붙이면 된다.
@Retention
Retention은 얼마나 오랫동안 어노테이션 정보가 유지되는지 설정할 수 있다.
내가 자주 사용할 속성은 RUNTIME이다. 대부분의 어노테이션이 RUNTIME을 달고 있다.