Spring AOP的实现:知识框架总结

通过对于这本图书的学习,我发现其实关于每一个部分的代码的解析不是按照AOP的具体实现流程来进行,而是通过对于某一个模块的解析来模块化地讲解知识。所以在新手比如我在学习的过程中,会有很多很多疑惑的地方。所以当我学完这一章之后,我希望通过画一张图,来解析整个AOP的实现流程。

首先我们先画一个最基本的数据结构,也就是我的博客中提到的三个类

Spring AOP的实现:知识框架总结

 这三个数据结构贯穿了AOP的始终。是AOP实现加强的重要类。

之后书上是讲述了AopProxy(代理对象)的建立,书上为我们举了ProxyFactoryBean对象的配置以及具体的 方法实现。

我们同样可以根据一张图来研究。

AopProxy是在getObject()方法中实现的,在这个方法的实现中。分为两个步骤,一个是advistor链的添加,一个对应代理对象生成。

其中advistor链的添加就是在initializeAdvisorChain中实现的

Spring AOP的实现:知识框架总结

之后就是AOP初始化过程的重头戏,也就是我们的Proxy代理对象的生成,这里面涉及到了拦截器链的生成,也就是根据advistor链对相应的方法进行相应的加强。

现在我们来看一下整个代理对象的生成。

Spring AOP的实现:知识框架总结 

代理对象需要实现InvocationHandler的invoke方法,在这个invoke方法中实现了拦截器链的生成。我们来看一下整个invoke方法

Spring AOP的实现:知识框架总结 这些当然只是图例,作为复习时的一个流程图解。关于AOP的源码解析我理解的就是这些。下一部分我不打算按照书上的顺序来叙述springmvc,我选择讲解事务。因为事务和我们面向切面的思想以及代理模式是息息相关的。