jdk和cglib动态代理区别

  1. 目标类不同

    jdk目标类需要实现接口。

    cglib不需要。

  2. 代理类生成方式不同

    jdk内部字节码生成代理类。

    cglib使用ASM字节码生成库生成代理类。

  3. 代理类和目标类关系不同

    jdk代理类实现目标类接口,jdk无法代理目标类中static或private的方法。

    cglib 代理类继承目标类重写目标类方法,cglib无法代理final修饰的目标对象或方法。

  4. 调用目标方法方式不同

    jdk通过反射调用目标类方法。

    cglib 通过子类调用父类方式调用。

相关推荐
Heris9913 分钟前
2.22 c++练习【operator运算符重载、封装消息队列、封装信号灯集】
开发语言·c++
----云烟----14 分钟前
C/C++ 中 volatile 关键字详解
c语言·开发语言·c++
mjr22 分钟前
设计模式-Java
java·设计模式
零星_AagT26 分钟前
Apache-CC6链审计笔记
java·笔记·apache·代码审计
yuanpan33 分钟前
23种设计模式之《组合模式(Composite)》在c#中的应用及理解
开发语言·设计模式·c#·组合模式
程序员张337 分钟前
使用IDEA提交SpringBoot项目到Gitee上
java·gitee·intellij-idea
BanLul43 分钟前
进程与线程 (三)——线程间通信
c语言·开发语言·算法
十八朵郁金香1 小时前
【JavaScript】深入理解模块化
开发语言·javascript·ecmascript
sunnyday04261 小时前
MyBatis XML映射文件中的批量插入和更新
xml·java·mysql·mybatis
Hello.Reader1 小时前
深入理解 Rust 的 `Rc<T>`:实现多所有权的智能指针
开发语言·后端·rust