jdk和cglib动态代理区别

  1. 目标类不同

    jdk目标类需要实现接口。

    cglib不需要。

  2. 代理类生成方式不同

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

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

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

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

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

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

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

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

相关推荐
阿波罗尼亚11 小时前
JDK17 新特性
java
独自破碎E11 小时前
【面试真题拆解】Spring事务机制
java·spring·面试
我是咸鱼不闲呀11 小时前
力扣Hot100系列21(Java)——[多维动态规划]总结(不同路径,最小路径和,最长回文子串,最长公共子序列, 编辑距离)
java·leetcode·动态规划
我命由我1234511 小时前
Element Plus 2.2.27 的单选框 Radio 组件,选中一个选项后,全部选项都变为选中状态
开发语言·前端·javascript·html·ecmascript·html5·js
lihao lihao12 小时前
二分查找
java·数据结构·算法
Albert Edison12 小时前
【C++11】可变参数模板
java·开发语言·c++
代码栈上的思考12 小时前
消息队列持久化:文件存储设计与实现全解析
java·前端·算法
sg_knight12 小时前
设计模式实战:策略模式(Strategy)
java·开发语言·python·设计模式·重构·架构·策略模式
麦麦鸡腿堡12 小时前
JavaWeb_SpringBootWeb,HTTP协议,Tomcat快速入门
java·开发语言