cglib动态代理之原理说明
Posted lwdmaib
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cglib动态代理之原理说明相关的知识,希望对你有一定的参考价值。
cglib采用了非常底层的字节码技术,通过目标类的字节码,为目标类创建子类,并在子类中用方法拦截技术,拦截所有父类方法的调用,并对拦截方法进行增强。
1)底层采用字节码框架ASM,来转换字节码来生成新的类。
2)更详细的说:代理类将目标类作为自己的父类并为每个不是final修饰的方法,创建两个方法:
一个是与父类方法签名相同的方法,会在该方法中通过super调用目标方法。
另一个是代理类独有的方法,称之为callback()回调方法,它会判断该方法是否绑定了拦截器(实现拦截器接口MethodInterceptor的接口对象),若存在则将调用interpet方法对目标方法进行代理,也就是在前后方法添加增强逻辑。
https://blog.csdn.net/Dustin_CDS/article/details/79685620
以上是关于cglib动态代理之原理说明的主要内容,如果未能解决你的问题,请参考以下文章
Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现
jdk动态代理和cglib动态代理底层实现原理超详细解析(jdk动态代理篇)