포인트컷 표현식
execution(* com.ciel.animo. .*Impl.get*(..))
1. 리턴타입 지정 execution(* com.ciel.animo. .*Impl.get*(..))
리턴타입 지정에서 가장 기본적인 방법은 '*' 캐릭터를 사용하는 것이다.
표현식 |
설명 |
* |
모든 리턴타입 허용 |
void |
리턴타입이 void인 메소드 선택 |
!void |
리턴타입이 void가 아닌 메소드 선택 |
2. 패키지 지정 execution(* com.ciel.animo. .*Impl.get*(..))
패키지 경로를 지정할 때는 '*', '..' 캐릭터를 이용한다.
표현식 |
설명 |
com.ciel.animo |
정확하게 com.ciel.animo 패키지만 선택 |
com.ciel.animo.. |
com.ciel.animo 패키지로 시작하는 모든 패키지 선택 |
com.ciel.animo..Impl |
com.ciel.animo 패키지로 시작하면서 마지막 패키지 이름이 Impl로 끝나는 패키지 선택 |
3. 클래스 지정 execution(* com.ciel.animo. .*Impl.get*(..))
클래스 이름을 지정할 때는 '*' , '+' 캐릭터를 이용한다.
표현식 |
설명 |
BoardServiceImpl |
정확하게 BoardServiceImpl 클래스만 선택 |
*Impl |
클래스 이름이 Impl로 끝나는 클래스만 선택 |
BoardService+ |
클래스 이름 뒤에 '+'가 붙으면 해당 클래스로부터 파생된 모든 자식 클래스 선택. 인터페이스 뒤에 '+'가 붙으면 해당 인터페이스를 구현한 모든 클래스 선택 |
4.메소드 지정 execution(* com.ciel.animo. .*Impl.get*(..))
메소드를 지정할 때는 주로 '*' 캐릭터를 사용하고 매개변수를 지정할 때는 '..'를 사용한다.
표현식 |
설명 |
*(..) |
가장 기본 설정으로 모든 메소드 선택 |
get*(..) |
메소드 이름이 get으로 시작하는 모든 메소드 선택 |
5.매개변수 지정
매개변수를 지정할 때는 '..' , '*' 캐릭터를 사용하거나 정확한 타입을 지정한다.
표현식 |
설명 |
(..) |
가장 기본 설정으로서 '..'은 매개변수의 개수와 타입에 제약이 없음을 의미 |
(*) |
반드시 1개의 매개변수를 가지는 메소드만 선택 |
(com.ciel.animo.user.UserVO) |
매개변수로 UserVO를 가지는 메소드만 선택. 이 때 클래스와 패키지 경로가 반드시 포함되어야 함 |
(!com.ciel.animo.user.UserVO) |
매개변수로 UserVO를 가지지 않는 메소드만 선택 |
(Integer, ..) |
한 개 이상의 매개변수를 가지되, 첫 번째 매개변수 타입이 Integer인 메소드만 선택 |
(Integer, *) |
반드시 두 개의 매개변수를 가지되, 첫 번째 매개변수의 타입ㅇ비 Integer인 메소드만 선택 |
'건승하고있어요 > Spring framework' 카테고리의 다른 글
[Spring] 스프링2일차 - 어노테이션 기반 AOP 설정 (0) | 2018.02.12 |
---|---|
[Spring] 스프링2일차 - 어드바이스 동작 시점 (8) | 2018.02.11 |
[Spring] 스프링2일차 - AOP용어 (0) | 2018.02.10 |
[Spring] 스프링2일차 - 스프링AOP (2) | 2018.02.09 |
[Spring] 스프링1일차 - 의존성 주입 어노테이션 (0) | 2018.02.09 |