从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—06. AOP前置工作准备以及实现逻辑分析

1. AOP实现思路简介

  1. 我们在实现AOP时主要用到两个工具库:cglib和AspectJ, cglib是作为我们框架底层的真正动态代理的实现工具,然后我们还需要用AspectJ的切面语法来为指定类进行动态逻辑的增强

最后完成时AOP的使用方式

从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---06. AOP前置工作准备以及实现逻辑分析

2. 实现AOP之前需要的准备工作: 完成相关依赖的导入

从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---06. AOP前置工作准备以及实现逻辑分析

3. 实现AOP整体架构搭建:完成相关类的创建

3.1 创建@Order注解

  1. 该注解的功能是标记Aspect切面类的优先级, 因为我们对同一个类,可能会有多个Aspect类对其进行增强,那么我们就需要对多个增强的逻辑进行排序

从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---06. AOP前置工作准备以及实现逻辑分析

3.2 创建AspectInfo类

  1. 该类的功能是作为我们实现的Aspect切面类的信息的载体

从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---06. AOP前置工作准备以及实现逻辑分析

3.3 创建AspectListExecutor类

  1. 该类是真正利用我们实现好的切面类实现增强逻辑的类,这个类的增强功能的实现利用的是cglib

从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---06. AOP前置工作准备以及实现逻辑分析

3.4 创建AspectWeaver类

  1. 该类的功能主要是:从IOC容器中取出我们想要实现增强逻辑的类,然后对其进行增强操作之后,再将其放回到IOC容器中

从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---06. AOP前置工作准备以及实现逻辑分析

3.5 创建PointcutLocator类

  1. 该类的主要作用是解析@Aspect注解中的切面表达式,并且定位需要被增强的目标

从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---06. AOP前置工作准备以及实现逻辑分析

3.6 创建ProxyCreator类

  1. 该类的主要作用就是根据目标对象和我们的增强逻辑,组合出最终的代理类对象

从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---06. AOP前置工作准备以及实现逻辑分析

github地址: https://github.com/wuyiccc/he…

原文 

https://segmentfault.com/a/1190000023215553

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—06. AOP前置工作准备以及实现逻辑分析

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址