Spring AOP PointCut 표현식 정리
지난 번에 이어서 Advice가 어떤 JoinPoint에 사용될 것인지를 지정하는 PointCut 표현식을 정리하겠습니다.
포인트컷에는 다양한 명시자를 이용할 수 있습니다.
execution | Advice를 적용할 메서드를 명시할 때 사용합니다. |
within | 특정 타입에 속하는 메서드를 JoinPoint로 설정되도록 명시할 때 사용합니다. |
bean | 스프링 버전 2.5 버전부터 지원하기 시작했으며, 스프링 빈을 이용하여 JoinPoint를 설정합니다. |
execution 명시자
execution([수식어] 리턴타입 [클래스이름].이름(파라미터)
- 수식어 : public, private 등 수식어를 명시합니다. (생략 가능)
- 리턴타입 : 리턴 타입을 명시합니다.
- 클래스이름 및 이름 : 클래스이름과 메서드 이름을 명시합니다. (클래스 이름은 풀 패키지명으로 명시해야합니다. 생략도 가능)
- 파라미터 : 메서드의 파라미터를 명시합니다.
- " * " : 모든 값을 표현합니다.
- " .. " : 0개 이상을 의미합니다.
Ex)
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 명시자
Ex)
within(com.edu.aop.SomeService)
- com.edu.aop.SomeService 인터페이스의 모든 메서드
within(com.edu.aop.*)
- com.edu.aop 패키지의 모든 메서드
within(com.edu.aop..*)
- com.edu.aop 패키지 및 하위 패키지의 모든 메서드
bean 명시자
Ex)
bean(someBean)
- 이름이 someBean인 빈의 모든 메서드
bean(some*)
- 빈의 이름이 some으로 시작하는 빈의 모든 메서드
참고 자료
https://groovysunday.tistory.com/201
스프링(Spring) AOP : AspectJ Pointcut 표현식 (1-1) execution
execution 명시자 - Advice를 적용할 메서드 지정 - 기본 형식 : -> "*" 는 모든 값을 의미 -> ".." 는 0개 이상 의미 execution([수식어] [리턴타입] [클래스이름] [이름]([파라미터]) 수식어 - 생략가능 - publi..
groovysunday.tistory.com
https://snoopy81.tistory.com/296
AspectJ의 Pointcut 표현식
● execution 명시자 : Advice를 적용할 메서드를 명시할 때 사용 기본 형식 execution(수식어패턴? 리턴타입패턴 클래스이름패턴?이름패턴(파라미터패턴) ▶ 수식어패턴 : public, private 등등의 수식어를 명시,..
snoopy81.tistory.com
https://sjh836.tistory.com/157
Spring AOP (개념, 용어, 원리, 포인트컷 표현식, JoinPoint API)
1. AOP란? Aspect Oriented Programming 의 약자로 관점지향 프로그래밍이라고 부른다. IoC가 낮은 결합도와 관련된 것이라면 AOP 는 높은 응집도와 관련되어 있다. 서비스들의 비즈니스 메소드들은 복잡한 코드로..
sjh836.tistory.com
3. 스프링 AOP (AspectJ의 Pointcut 표현식)
6. AspectJ의 Pointcut 표현식 □ POJO 클래스를 이용하여 AOP를 적용하는 두 가지 방법 - XM...
blog.naver.com