jdk和cglib动态代理区别

  1. 目标类不同

    jdk目标类需要实现接口。

    cglib不需要。

  2. 代理类生成方式不同

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

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

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

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

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

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

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

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

相关推荐
楠木s16 分钟前
JNDI基础
java·开发语言·网络攻击模型·哈希算法·安全威胁分析
西猫雷婶18 分钟前
python学opencv|读取图像(十七)认识alpha通道
开发语言·python·opencv
十年一梦实验室22 分钟前
【C++】sophus : se2.hpp 提供了SE(2)群的数学操作和Lie群的基本操作 (十五)
开发语言·c++·人工智能·算法·机器学习
倩倩_ICE_王王33 分钟前
Spring Boot 项目创建
java·spring boot·后端
IH_LZH36 分钟前
计算机网络面经总结
java·开发语言·网络·网络协议·tcp/ip·计算机网络
非凡的世界36 分钟前
Go web 开发框架 Iris
开发语言·golang·iris
yzhSWJ41 分钟前
Java 后端给前端返回的long精度缺失,导致数据不一致
java·js·long
南山十一少44 分钟前
mybatis分页插件的使用
java·spring·mybatis
野蛮的大西瓜1 小时前
自动呼入机器人如何实现自动化学习?
java·人工智能·自然语言处理·机器人·自动化·信息与通信
-Even-1 小时前
【第七章】函数——C++的编程模块
开发语言·c++·c++ primer plus