JDK动态代理和CGLIB区别

内容摘要
JDK动态代理和CGLIB区别1、JDK动态代理:利用拦截器(拦截器必须实现InvocationHanlder)加上反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理
文章正文

JDK动态代理和CGLIB区别

1、JDK动态代理:

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

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

(相关视频教程分享:java视频教程)

2、CGLiB动态代理:

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

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

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

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

更多Java相关教程,请访问PHP中文网,java教程栏目!

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!