欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Spring AOP

Spring AOP

2025/9/24 8:27:40 来源:https://blog.csdn.net/wk200411/article/details/145356942  浏览:    关键词:Spring AOP

一.AOP(面向切面编程)简单介绍

AOP是⼀种思想:是对某⼀类事情的集中处理


二.AOP使用

1.先引入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2.使用AOP的注解:

三.AOP详解

1.切点

(i)execution表达式

用于有规则的方法。

(1)切点形式

红色线中的表达式路径就是切点表达式。

(2)切点表达式

语法:

访问修饰符和异常可以省略

切点表达式支持的通配符表达:

(ii)annotation自定义注解

先写一个自定义注解annotation

再通过Around切点表达式来作用

再通过自定义注解作用于需要使用的方法上

效果和execution一样

如果需要作用每个RequestMapping的方法上也能这样写:

2.连接点

连接点指的是在切点表达式范围内作用的具体方法名和参数变量:

3.通知

(1)具体需要做的事情,也就是方法中的业务:

(2)通知类型:

(3)正常接口通知返回的顺序:

(4)接口发生异常后的通知顺序:

4.切面

切点+通知

5.注解Pointcut

(1)Poincut可以将切点的路径管理,方便后续的简写,类似于常量和枚举:

(2)其他类中通过包路径加类名和方法名就可以使用:

6.切面优先级注解Order

不同切面的优先级顺序图:

改变前:

改变后:

Order中的数字越大,优先级越低:

四.Spring AOP原理

1.代理模式

        定义:为其他对象提供⼀种代理以控制对这个对象的访问. 它的作用就是通过提供⼀个代理类, 让我们 在调用目标方法的时候, 不再是直接对目标方法进行调用, 而是通过代理类间接调用。

根据代理的创建时期,代理模式分为静态代理和动态代理

(1)静态代理

        概念:由程序员创建代理类或特定工具自动生成源代码再对其编译,在程序运行前代理类的
.class文件就已经存在了。

类似于租房中有一个中介,房东需要售卖或者出租房子:

此时中介已经做好了相关的工作,他本身就是为这个房子服务的,并且已经做好了准备,只需要等待租户或者买家来进行咨询:

(2)动态代理

概念:在程序运行时,运用反射机制动态创建而成,Java也对动态代理进行了实现,并给我们提供了⼀些API,常见的实现方式有两种:

(i)JDK代理

(ii)CGLIB代理

先引入依赖:

再写CGLIB动态代理类:

使用CGLIB动态代理类:

五.Spring AOP源码

自己去看

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词