史上最全AOP切面表达式API使用指南

【原创】软件编程指南 2020-07-05  

废话不多说,AOP实战中必须要懂得API语法。API只是工具,无须死记硬背,收藏整理即可

文章内容已上传Github: https://github.com/lxchinesszz/spring-learning

史上最全AOP切面表达式API使用指南

 


一、常用注解

 

史上最全AOP切面表达式API使用指南

 


二、切面表达式

 

史上最全AOP切面表达式API使用指南

 

三、API使用案例

1. within

a. API说明

  1. 精确匹配类名
  2. 模糊匹配包中所有的类
  3. 模糊匹配包中所有的带Impl后缀的

b. 目录

 

史上最全AOP切面表达式API使用指南

 

c. 拦截代码

 

史上最全AOP切面表达式API使用指南

 

2. @within

a. API说明

拦截被指定注解标注的类

b. 目录

 

史上最全AOP切面表达式API使用指南

 

c. 拦截代码

 

史上最全AOP切面表达式API使用指南

 

史上最全AOP切面表达式API使用指南

 

3. this

a. API说明

拦截指定的类

b. 目录

 

史上最全AOP切面表达式API使用指南

 

c. 拦截代码

 

史上最全AOP切面表达式API使用指南

 

4. args

a. API说明

 

史上最全AOP切面表达式API使用指南

 

Person类中有两个info方法,但是入参不一样,假如要拦截指定入参的方法时候,就可以使用args

b. 目录

 

史上最全AOP切面表达式API使用指南

 

c. 拦截代码

可以看到args 和 within可以通过&&来进行,联合匹配。另外可以通过returning方法指定方法的返回值。但是注意,类型要和要拦截的方法的返回类型匹配。否则会报错。

史上最全AOP切面表达式API使用指南

 

5. @annotation

a. API说明

拦截被指定注解标记的方法。

b. 目录

 

史上最全AOP切面表达式API使用指南

 

c. 代码

 

史上最全AOP切面表达式API使用指南

 

6. @args

a. API说明

拦截方法中入参被@args指定注解的方法。

b. 目录

 

史上最全AOP切面表达式API使用指南

 

c. 代码

注意当出现以下异常说明aop声明的拦截范围太广泛了,导致了一些不能拦截的类被拦截从而报错了,此时只用缩小拦截的范围即可

史上最全AOP切面表达式API使用指南

 

史上最全AOP切面表达式API使用指南

 

7. execution

a. API说明

execution()是最常用的切点函数,其语法如下所示:

execution(<修饰符模式>?<返回类型模式><方法名模式>(<参数模式>)<异常模式>?)除了返回类型模式、方法名模式和参数模式外,其它项都是可选的

史上最全AOP切面表达式API使用指南

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值