切点描述的表达式配置方式:
切点描述的表单的案例:
-
所有的public的方法
execution(public * *(..))
-
set开头的所有的所有方法
execution(* set*(..))
-
在AccountService接口中的所有方法
execution(* com.xyz.service.AccountService.*(..))
-
service包中定义的所有的类或者接口中的所有的方法
execution(* com.xyz.service.*.*(..))
-
service包中以及其子孙包中的定义的所有的类或者接口中的所有的方法
execution(* com.xyz.service..*.*(..))
-
com.xyz.service包中的所有类和接口:
within(com.xyz.service.*)
-
com.xyz.service的子孙包的接口和类
within(com.xyz.service..*)
-
直接指定一个全限定类名:
this(com.xyz.service.AccountService)
-
只能指定实现类。不能指定接口
target(com.xyz.service.AccountService)
-
含有指定参数的方法:
args(java.io.Serializable)
-
含有指定注解的方法
@target(org.springframework.transaction.annotation.Transactional)
-
含有指定注解的类的子孙类:
@within(org.springframework.transaction.annotation.Transactional)
-
含有指定注解的
@annotation(org.springframework.transaction.annotation.Transactional)
-
方法的参数含有指定注解的方法:
@args(com.xyz.security.Classified)
-
指定名称的bean:
bean(tradeService)
-
指定名称模版的bean
bean(*Service)