알버트의 개발하는 블로그

자바 커스텀 어노테이션에 대해서 (custom annotation) 본문

웹개발/Spring

자바 커스텀 어노테이션에 대해서 (custom annotation)

알버트 2022. 3. 4. 15:37

  1) 커스텀 어노테이션을 이용하는 방법

    어노테이션을 정의한다.

    어노테이션을 클래스에서 사용한다. (타겟에 적용)

    어노테이션을 이용하는 코드를 수행한다.



  2) 어노테이션 생성 예제
  import java.lang.annotation.Retention;
  import java.lang.annotation.RetentionPolicy;

  @Retention(RetentionPolicy.RUNTIME) // 런타임중에도 유효한 어노테이션임을 기술
  public @interface Count100 { // 어노테이션은 @interface 인터페이스명으로 정의
  }
  // 커스텀 어노테이션을 메소드에 적용
  public class MyHello {
        @Count100
        public void hello(){
            System.out.println("hello");
        }
    }
  // 어노테이션이 적용된  부분인지 체크하여 코드내에서 사용

    import java.lang.reflect.Method;

    public class MyHelloExam {
        public static void main(String[] args) {
            MyHello hello = new MyHello();

            try{
                Method method = hello.getClass().getDeclaredMethod("hello");
            if(method.isAnnotationPresent(Count100.class)){
                    for(int i = 0; i < 100; i++){
                        hello.hello();
                    }
                }else{
                    hello.hello();
                }
            }catch(Exception ex){
                ex.printStackTrace();
            }       
        }
    }


  이런식으로 커스템 어노테이션을 만들어 
  클래스안에서 타겟에 적용하고,
  호출부에서 어노테이션이 존재하는지를 확인하면서 흐름을 제어해갈수 있습니다.