![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
原理学习
文章平均质量分 92
@猪大肠
阿里云社区专家博主、多年金融行业开发经验,专注于java核心技术、Spring框架研究,学习成功分享
展开
-
动态代理:Cglib原理讲解
Cglib动态代理不需要被代理类实现接口,根据原理我们知道生成的代理类是继承了被代理类,而且其方法调用方法是使用FastClass,这与JDK动态代理的反射有比较大的区别。JDK代理使用的是反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。CGLIB代理使用字节码处理框架ASM,对代理对象类的class文件加载进来,通过修改字节码生成子类。JDK创建代理对象效率较高,执行效率较低;CGLIB创建代理对象效率较低,执行效率高。原创 2022-12-11 21:11:41 · 1116 阅读 · 0 评论 -
动态代理:JDK动态代理源码学习
动态代理在开发可能使用的频率不是特别高,但在一些框架里面总能看到它的身影,例如Spring AOP就是使用JDK动态代理和CGLIB动态代理两种方法,本篇文章讲解JDK动态代理原理,看它是如何对类进行增强的。代理就是由直接调用转为间接调用,比如我们调用出单服务A,我需要在每次调用A时都记录日志,我们可以创建一个新的类及其方法B,在B中调用A,并且插入日志,这样由原先的调用A变成B,我们可以在B做一些增强操作如日志等。B就是代理类,而A就是原生类(被代理类)。原创 2022-12-09 23:55:25 · 743 阅读 · 0 评论