-
某个特殊的方法:com.example.service.UserService 类中所有以 find 开头的公共方法
execution(public * com.example.service.UserService.find*(..))
-
类中的所有方法:com.example.service 包下所有类的所有方法
execution(* com.example.service.*.*(..))
-
特定参数类型的方法:com.example.service.UserService 类中接受一个 User 对象作为参数的方法
execution(String com.example.service.UserService.getName(..))
-
com.example.service 包及其子包下的所有类中的所有方法
execution(* com.example.service..*.*(..))
-
com.example.service 包及其子包下的所有类中的所有方法
within 不能指定某个方法,本身是类级别的;execution 可以指定某个方法
如果exection 切某个包及其子包下所有方法就和 within 功能一样了
within(com.example.service..*)
-
带有特定注解的方法:被 @Loggable 注解标记的方法
@annotation(com.example.annotation.Loggable)
-
结合多个条件:匹配 com.example.service 包中所有被 @Loggable 注解标记的方法
execution(* com.example.service.*.*(..)) && @annotation(com.example.annotation.Loggable)
-
有异常抛出的方法:匹配 com.example.service 包下所有方法,并且这些方法抛出 Exception
execution(* com.example.service.*.*(..)) throws Exception