SpringAOP切点execution表达式解析

本文介绍了SpringAOP中用于定义切点的execution表达式,包括方法修饰符、返回值类型、类名、方法名、参数列表和异常的匹配规则。同时,讲解了如何使用通配符以及定义多个切点的逻辑操作,如or,and,not。示例展示了匹配不同场景的execution表达式,如指定包下的所有类方法、特定名称的方法、指定类的所有方法等。
摘要由CSDN通过智能技术生成

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..*(..))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐江小鱼

知识创造财富,余额还是小数

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值