定义
切入点表达式(PointCut Expression)
通过切入点表达式表示一个切入点,一条切入点表达式由一个或多个指示符组成。
指示符
指示符之间可以用&&、||和!进行组合。
execution
用于匹配指定方法。
语法
execution(访问修饰符(可选) 返回类型 包名.类名.方法名(参数类型) 异常(可选))
- 访问修饰符(可选):
public,pravite,protected,*表示任意 - 返回类型:返回值具体类型,
void,*表示任意 - 包名.类名.方法名:方法的全限定名,其中任何一部分都可以用
*表示任意;用..表示任意层级 - (参数类型):方法的参数类型,
(..)表示任意 - 异常:
throws 异常具体类型,throws *表示任意
示例
execution(* *(..)):匹配所有方法
execution(public * *(..)):匹配所有public方法
execution(String *(..)):匹配所有返回类型为String的方法
execution(* com.example.service.UserService.*(..)):匹配UserService中的所有方法
execution(* *..get*(..)):匹配所有以get开头的方法
execution(* com.example.mapper..*.update(..)):匹配com.example.mapper包以及子包中所有名为update的方法
execution(* *(String,*)):匹配所有第一个参数类型为String的方法
@annotation
用于匹配所有使用了指定注解的方法。
语法
@annotation(注解的全限定名)
- 注解的全限定名:包名.注解名
示例
@annotation(org.springframework.transaction.annotation.Transactional):匹配所有使用了@Transactional注解的方法