본문 바로가기

건승하고있어요/Spring framework

[Spring] 스프링2일차 - 포인트컷 표현식

반응형

포인트컷 표현식 


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인 메소드만 선택 


반응형