热门IT资讯网

JDK动态代理和CGLIB有什么区别

发表于:2024-11-27 作者:热门IT资讯网编辑
编辑最后更新 2024年11月27日,今天小编给大家分享的是JDK动态代理和CGLIB有什么区别,相信很多人都不太了解,为了让大家更加了解JDK动态代理和CGLIB的区别,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。JDK

今天小编给大家分享的是JDK动态代理和CGLIB有什么区别,相信很多人都不太了解,为了让大家更加了解JDK动态代理和CGLIB的区别,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。

JDK动态代理和CGLIB区别

1、JDK动态代理:

利用拦截器(拦截器必须实现InvocationHanlder)加上反射机制生成一个实现代理接口的匿名类,

在调用具体方法前调用InvokeHandler来处理。

()

2、CGLiB动态代理:

利用ASM开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。

3、JDK动态代理和CGLIB字节码生成的区别?

1、JDK动态代理只能对实现了接口的类生成代理,而不能针对类。

2、CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法,并覆盖其中方法实现增强,但是因为采用的是继承,所以该类或方法最好不要声明成final,对于final类或方法,是无法继承的。

关于JDK动态代理和CGLIB有什么区别就分享到这里了,希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。

0