AOP总结目录--- Spring源码从入门到精通(二十四)

简介: AOP总结目录--- Spring源码从入门到精通(二十四)

上篇文章说到了aop连接器链的调用,前面递归调用四个拦截器,每次都会调用invoke方法,有一个index参数放拦截器索引,当判断为最后一个拦截器的时候,return跳出循环。

连接器链调用---Spring源码从入门到精通(二十三)


这篇文章总结AOP全流程:

1、用@EnableAspectJAutoProxy注解开启aop功能。

2、这个注解会给容器中注入一个组件AnnotationAwareAspectJAutoProxyCreate。

3、此组件是一个后置处理器。

4、容器的创建流程:

1)、registerBeanPostProcessor注册后置处理器,创建AnnotationAwareAspectJAutoProxyCreate对象。

2)、finishBeanFactoryInitialization()方法初始化剩下的单实例bean。A、创建业务逻辑组件和切面组件。B、AnnotationAwareAspectJAutoProxyCreate拦截组件的创建过程。C、组件创建完成之后,判断是否需要增强,是的话,切面的通知方法,包装成增强器(Advisor),给业务逻辑创建一个代理对象cglib。

5、执行目标方法:

1)、代理对象执行目标方法。

2)、CglibAopProxy.intercept()方法拦截。过程A、等到目标方法的拦截器链MethodInterceptor(增强器包装成拦截器)。B、利用拦截器链式机制,依次进入每一个拦截器进行执行。C、效果,前置通知->目标方法->后置通知->返回通知。如果目标方法抛出异常,则是前置通知->目标方法->后置通知->异常通知。

相关文章
|
29天前
|
设计模式 Java Maven
Spring Aop 底层责任链思路实现-springaopdi-ceng-ze-ren-lian-si-lu-shi-xian
Spring Aop 底层责任链思路实现-springaopdi-ceng-ze-ren-lian-si-lu-shi-xian
35 1
|
16天前
|
前端开发 Java 数据库连接
Spring系列文章1:Spring入门程序
Spring系列文章1:Spring入门程序
|
2天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
2天前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
|
8天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
13天前
|
XML Java 数据格式
从入门到精通:Spring基础注解的全面解析
从入门到精通:Spring基础注解的全面解析
30 2
从入门到精通:Spring基础注解的全面解析
|
22天前
|
XML Java Maven
Spring之Aop的注解使用
Spring之Aop的注解使用
|
28天前
|
Java Spring
Spring 如何实现 AOP
Spring 如何实现 AOP
17 0
|
1月前
|
存储 缓存 安全
Spring Boot从入门到实战
本课程从SpringBoot的最基础的安装、配置开始到SpringBoot的日志管理、Web业务开发、数据存储、数据缓存,安全控制及相关企业级应用,全程案例贯穿,案例每一步的都会讲解实现思路,全程手敲代码实现。让你不仅能够掌SpringBoot的应用,还能了解背后的原理,学习完本课程后,能够让你动手独立完成一个中小型的SpringBoot Web应用开发。
19 1
Spring Boot从入门到实战
|
1月前
|
Java Spring
使用spring实现邮件的发送(含测试,源码,注释)
使用spring实现邮件的发送(含测试,源码,注释)
7 0