execution | Advice를 적용할 메서드를 명시할 때 사용합니다. |
within | 특정 타입에 속하는 메서드를 JoinPoint로 설정되도록 명시할 때 사용합니다. |
bean | 스프링 버전 2.5버전부터 지원하기 시작했으며 스프링 빈을 이용하여 JoinPoint를 설정합니다. |
ex)
execution(public Integer com.example.aop..(*))
-> com.example.aop 패키지의 하위 클래스 중 public 접근자면서 반환타입이 Integer, 한개의 파라미터를 가지는 메소드
execution( com.example...get*(..))
-> com.exapmle 패키지 및 하위 패키지의 클래스 중 이름이 get으로 시작하며 파라미터가 0개이상인 모든 메서드
execution( com.example.aop..Service.*(..))
-> com.example.aop 패키지 및 하위 패키지에 속해있고 이름이 Service로 끝나는 파라미터가 0개이상인 모든 메서드
execution( com.example.aop.BoardService.(..))
-> com.example.aop 패키지의 BoardService 클래스의 파라미터가 0개 이상인 모든 메서드
execution( some(, ))
-> 메서드 이름이 some으로 시작하고 파라미터가 2개인 모든 메서드
ex)
within(com.example.aop.SomeService)
-> com.example.aop.SomeService 인터페이스의 모든 메서드
within(com.example.aop.*)
-> com.example.aop 패키지의 모든 메서드
within(com.example.aop..*)
-> com.example.aop 패키지 및 하위 패키지의 모든 메서드
ex)
bean(someBean)
-> 이름이 someBean인 빈의 모든 메서드
bean(some*)
-> 빈의 이름이 some으로 시작하는 빈의 모든 메서드