[Spring笔记] Spring-32-AOP切入点表达式

Spring-31-AOP切入点表达式

1、切入点表达式标准格式

标准格式为:动作关键字(访问修饰符 返回类型 包名.类名/接口名.方法名(参数类型)异常名)

execution( public User com.xxx.service.UserService.selectById(int) )
  • 动作关键字:描述切入点的行为动作,如 execution 表示执行到指定切入点
  • 访问修饰符:public,private,可省略
  • 异常名:方法定义中抛出指定异常,可以省略

2、通配符描述切入点

  • " * " :单个独立的任意符号,可以独立出现,也可以作为前缀或后缀的匹配符出现
execution( public * com.xxx.*.UserService.select*(*) )

匹配 com.xxx 包下的任意包中的 UserService 类或接口中所有 select 开头的带有一个参数的方法

  • ..” :任意个(0个或多个)连续的任意符号,可以独立出现,常用于简化包名与参数的书写
execution( public User com..UserService.selectById(..) )

匹配com包下的任意包中的UserService类或接口中所有名称为 selectById 的方法

  • " + ":专用于匹配子类类型
execution(* *..*Service+.*(..) )

任意返回值,任意包下以 Service 为后缀的类(或接口)的子类,任意参数

3、书写技巧

  • 所有代码应按照标准规范开发,否则难以使用各类技巧
  • 描述切入点通常描述接口,而不描述实现类
  • 访问控制修饰符针对接口开发均采用 public 描述(可省略访问控制修饰符描述
  • 返回值类型对于增删改类使用精准类型加速匹配,对于查询类使用 * 通配符快速描述
  • 包名书写尽量不使用 … 匹配,效率过低,常用 * 做单个包描述匹配,或精准匹配
  • 接口名/类名书写名称与模块相关的采用 * 匹配,例如 UserService 书写成 *Service,绑定业务层接口名
  • 方法名书写以动词进行精准匹配,名词采用 * 匹配,例如 getById 书写成 getBy*,selectAll 还是写成 selectAll
  • 参数规则较为复杂,根据业务方法灵活调整
  • 通常不使用异常作为匹配规则

视频链接:https://www.bilibili.com/video/BV1Fi4y1S7ix?p=34

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值