1.
定义切点,切点只有两个参数 一个表达式 一个参数
@Pointcut(value="表达标签(表达式)")
表达标签
第一个根据注解匹配 @annotation 这个简单,有这个注解的就可以匹配
第二个是根据 execution 表达是来,这个容易配错,导致的后果严重,毫不夸张的讲整个切面报废
着重看一下 execution 的 正则匹配
修饰符匹配
public private protected
修饰符 返回值 类路径 方法名(参数) 异常类型 匹配规则
方法名(参数)必须输
参数匹配
(..) 代表所有参数
(.)代表仅有一个参数
(Integer,)代表第一个必须为Integer类型,第二个为任何值
方法名
* 所有 good * 以good 开头的所有接口
返回值匹配 * 表示任何返回值
练习一下:
(* * *(..)) 所有方法
(* com.wind.service.WindService.*(..)) WindService类下的所有方法
(* com.wind.controller.WindController.*(..)) 该WindController类下的所有方法
(* com.wind.service.*.*(..))service包下的所有方法
(* com.wind.controller.*.*(..))controller包下的所有方法
(* com.wind.service..*.*(..))service包下和所有子包的所有方法
(* com.wind.controller..*.*(..))controller包下和所有子包的所有方法
注意点: 第一个 * 后面有空格
execution使用
最新推荐文章于 2023-12-15 19:47:55 发布