jdk和cglib动态代理区别

  1. 目标类不同

    jdk目标类需要实现接口。

    cglib不需要。

  2. 代理类生成方式不同

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

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

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

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

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

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

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

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

相关推荐
方圆想当图灵2 分钟前
缓存之美:万文详解 Caffeine 实现原理(下)
java·redis·缓存
fmdpenny16 分钟前
Vue3初学之商品的增,删,改功能
开发语言·javascript·vue.js
栗豆包17 分钟前
w175基于springboot的图书管理系统的设计与实现
java·spring boot·后端·spring·tomcat
涛ing30 分钟前
21. C语言 `typedef`:类型重命名
linux·c语言·开发语言·c++·vscode·算法·visual studio
等一场春雨1 小时前
Java设计模式 十四 行为型模式 (Behavioral Patterns)
java·开发语言·设计模式
黄金小码农1 小时前
C语言二级 2025/1/20 周一
c语言·开发语言·算法
萧若岚1 小时前
Elixir语言的Web开发
开发语言·后端·golang
wave_sky1 小时前
解决使用code命令时的bash: code: command not found问题
开发语言·bash
水银嘻嘻2 小时前
【Mac】Python相关知识经验
开发语言·python·macos
ac-er88882 小时前
Yii框架中的多语言支持:如何实现国际化
android·开发语言·php