SpringAOP切点execution表达式解析

SpringAOP切点execution表达式解析

一、Aspect切点语法

execution(方法的修饰符 方法的返回值类型 方法所属的类 方法名 方法中参数列表 方法抛出的异常)

  1. 方法的修饰符

支持通配符*,可以省略;

  1. 方法的返回值类型

支持通配符*,表示所有返回值,不可以省略;

  1. 方法所属的类

支持通配符*,可以省略;

  1. 方法名
  • 支持通配符*,表示所有方法,不可以省略;
  1. 方法中参数列表
  • 支持通配符*,不可以省略;
  • ()表示一个无参方法,(…)表示任意数量和类型的方法,其它任意数量是指零个,一个,多个;
  • (*)一个任意类型的方法;
  • (*,Integer)接受二个参数的方法,第一个可以是任意类型,第二个必须是Integer类型;
  • 如果是自定义类型,必须写全路径类名。
  1. 方法抛出的异常
  • 支持通配符*,可以省略。

二、定义多个切点

  • 使用||,or表示或;
  • 使用&&, and表示与;
  • 使用not, !表示非。

三、execution表达式示例

  1. 匹配指定包下所有类方法
execution(* com.baidu.dao.*(..))
  1. 匹配所有save开头的方法
execution(* save*(..))
  1. 匹配指定类所有方法
execution(* com.baidu.service.UserService.*(..))
  1. 匹配实现特定接口所有类方法
execution(* com.baidu.dao.GenericDAO+.*(..))
  1. 匹配指定包以及及指定包下面的子包所有类
execution(* com.baidu.dao..*(..))

你可能感兴趣的:(#,spring,java,spring,开发语言)