SpringAOP原理

本文详细介绍了AOP(面向切面编程)的三种实现方式:XML配置、混合模式(XML结合注解)和纯注解模式。深入剖析了切面分析,包括前置、后置、返回和异常通知,并探讨了如何开启代理类。讲解了AopContext.currentProxy()在获取代理类中的作用,以及AOP代理对象的创建过程,涉及JDK动态代理和CGLIB。同时阐述了注册后置处理器的步骤,以及在整个调用流程中的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述在这里插入图片描述aop的实现
1.xml实现
在这里插入图片描述2.混合模式
xml加注解
在这里插入图片描述3.注解模式
在这里插入图片描述切面分析:前置通知后置通知和返回通知,异常通知

在这里插入图片描述
在这里插入图片描述开启代理类
在这里插入图片描述

AopContext.currentProxy()是获取saveUser的代理类

在这里插入图片描述原理
在这里插入图片描述
注册后置处理器
在这里插入图片描述
在这里插入图片描述
1.获取名称
在这里插入图片描述2,根据名称,有四种beanpostprocessor,循环名称,
在这里插入图片描述排序并且注册
在这里插入图片描述order处理器实现
在这里插入图片描述进行启动在这里插入图片描述

寻找aspectj切面
在这里插入图片描述

获取切面。

获取注解
在这里插入图片描述获取pointcut
在这里插入图片描述获取切面注解
在这里插入图片描述从方法中循环,查看有误before,around等的注解
在这里插入图片描述
在这里插入图片描述在这里插入图片描述aop创建代理对象

匹配后返回
在这里插入图片描述创建代理类
在这里插入图片描述在这里插入图片描述1jdk代理
2.检查某个方法
3.检查exposeProxy是否暴露
4.获取方法上的拦截链
5.检查是否找到,找不到就将advisor转化为interceptor并返回。
在这里插入图片描述

6.如果空,调用原方法
7.不为空,触发递归调用。

-1检查是否为当前线程
在这里插入图片描述
调用流程
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值