定义

切入点表达式(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注解的方法