execution 명시자
-> "*" 는 모든 값을 의미
-> ".." 는 0개 이상 의미
execution([수식어][리턴타입] [클래스이름][이름]([파라미터])
수식어
생략가능
public, protected 등등
리턴타입
메서드의 리턴타입 지정
클래스이름, 이름
클래스의 이름 및 메서드의 이름 지정
파라미터
메서드 파라미터 지정
ex)
execution( some.package..*())
some.package 패키지 내
파라미터가 없는 모든 메서드 호출
execution( some.package...*(..))
some.package 패키지와 하위 패키지에 있는
파라미터가 0개 이상인 모든 메서드 호출
execution(String some.package.SomeService.someMethod(..))
리턴 타입이 String,
some.package.SomeService 인터페이스 내
파라미터가 0개 이상인 someMethod 메서드 호출
execution( some(*))
메서드 이름이 some으로 시작되고,
파라미터가 1개인 메서드 호출
execution( some(, ))
메서드 이름이 some으로 시작되고,
파라미터가 2개인 메서드 호출
execution( some(String, ..))
메서드 이름이 some으로 시작되고,
첫번째 파라미터 타입이 String,
파라미터가 1개 이상인 메서드 호출
이 외에도 다른 표현식과 spring에 대한 정보가 잘 정리되어 잇으니 출처를 참고할 것
출처: https://groovysunday.tistory.com/201 [성냥의 불친절한 IT 이야기]