码迷,mamicode.com
首页 > 其他好文 > 详细

cglib动态代理之原理说明

时间:2018-07-21 22:51:56      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:另一个   增强   子类   llb   就是   lib   method   通过   cglib动态代理   

cglib采用了非常底层的字节码技术,通过目标类的字节码,为目标类创建子类,并在子类中用方法拦截技术,拦截所有父类方法的调用,并对拦截方法进行增强。

1)底层采用字节码框架ASM,来转换字节码来生成新的类。

2)更详细的说:代理类将目标类作为自己的父类并为每个不是final修饰的方法,创建两个方法:

      一个是与父类方法签名相同的方法,会在该方法中通过super调用目标方法。

      另一个是代理类独有的方法,称之为callback()回调方法,它会判断该方法是否绑定了拦截器(实现拦截器接口MethodInterceptor的接口对象),若存在则将调用interpet方法对目标方法进行代理,也就是在前后方法添加增强逻辑。

https://blog.csdn.net/Dustin_CDS/article/details/79685620

cglib动态代理之原理说明

标签:另一个   增强   子类   llb   就是   lib   method   通过   cglib动态代理   

原文地址:https://www.cnblogs.com/lwdmaib/p/9302368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!