PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

JDK动态代理和CGLIB区别

angryTom
angryTom 原创
2020-02-17 16:34:34 3974浏览

jdk动态代理和cglib区别

1、JDK动态代理:

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

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

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

2、CGLiB动态代理:

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

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

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

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

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。