ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] AOP 포인트컷 표현식
    Spring/spring framework 기본 및 이론 2020. 5. 15. 14:32

    포인트컷 표현식

    execution() : 가장 대표적이고 강력한 지시자로, 접근제어자, 리턴 타입, 타입 패턴, 메서드, 파라미터 타입, 예외 타입 등을 조합해서 메서드까지 선택가능한 가장 정교한 포인트컷을 만들수 있다.
    execution([수식어] 리턴타입 [클래스이름].이름(파라미터)

    execution(public Integer com.edu.aop.*.*(*))
     - com.edu.aop 패키지에 속해있고, 파라미터가 1개인 모든 메서드
    
    execution(* com.edu..*.get*(..))
     - com.edu 패키지 및 하위 패키지에 속해있고, 이름이 get으로 시작하는 파라미터가 0개 이상인 모든 메서드 
    
    execution(* com.edu.aop..*Service.*(..))
     - com.edu.aop 패키지 및 하위 패키지에 속해있고, 이름이 Service르 끝나는 인터페이스의 파라미터가 0개 이상인 모든 메서드
    
    execution(* com.edu.aop.BoardService.*(..))
     - com.edu.aop.BoardService 인터페이스에 속한 파마리터가 0개 이상인 모든 메서드
    
    execution(* some*(*, *))
     - 메서드 이름이 some으로 시작하고 파라미터가 2개인 모든 메서드

    within() : 타입 패턴만을 이용하여 조인포인트를 정의한다.

    within(com.edu.aop.SomeService)
     - com.edu.aop.SomeService 인터페이스의 모든 메서드
    
    within(com.edu.aop.*)
     - com.edu.aop 패키지의 모든 메서드
    
    within(com.edu.aop..*)
     - com.edu.aop 패키지 및 하위 패키지의 모든 메서드

    this : 빈 오브텍트의 타입의 조인포인트를 정의한다.
    target : 대상객체의 타입 비교를 이용한 조인포인트를 정의한다.
    args : 메서드의 파라미터 타입만을 이용하여 조인포인트를 정의한다.
    @target : 특정 어노테이션이 정의된 객체를 찾는 조인포인트를 정의한다.
    @args : 특정 어노테이션을 파라미터로 받는 오브젝트를 찾는 조인포인트를 정의한다.
    @within : @target과 유사하게 특정 어노테이션이 정의된 객체를 찾는데, 선택될 조인포인트 메서드는 타겟 클래스에서 선언이 되어있어야 한다.
    @annotation : 조인 포인트 메서드에 특정 어노테이션을 찾는 조인포인트를 정의한다.

    포인트컷의 조합식에는 or, and, not 3가지를 사용할 수 있으며 각각 ||, &&, !으로 표현할 수 있음.

    execution과 @annotation을 주로 사용

    반응형

    댓글

Designed by Tistory.