spring代理的类图

来源:互联网 发布:ubuntu版本的区别 编辑:程序博客网 时间:2024/05/29 18:26

希望达到目的:
spring两种代理的区别(间接说明spring代理的选择),两种代理的核心依赖
这里写图片描述

从图中看出JdkDynamicAopProxy和CglibAopProxy区别在于CglibAopProxy是使用Enhancer(spring asm技术生成代理对象)而JdkDynamicAopProxy是InvocationHandler接口的实现(是基于JDK 动态代理实现的)这也是DefaultAopProxyFactory选择各种代理的逻辑。
他们都依赖AdvisedSupport对象。
ReflectiveMethodInvocation 为两种代理都提供了核心实现逻辑,通过拦截器链实现真正的代理效果(也就是带有拦截器的方法调用类)。
留下疑问:spring建言者,切面,拦截器都是怎么样一起配合发生达到aop的效果的。下一篇会通过描述spring事务类图带着来描述。

原创粉丝点击