【原创】软件编程指南 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使用指南

 

相关文章:

  • 2021-11-11
  • 2022-12-23
  • 2021-06-13
  • 2021-09-13
  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
猜你喜欢
  • 2022-12-23
  • 2021-08-06
  • 2021-10-24
  • 2022-03-06
相关资源
相似解决方案