jdk和cglib动态代理区别

  1. 目标类不同

    jdk目标类需要实现接口。

    cglib不需要。

  2. 代理类生成方式不同

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

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

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

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

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

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

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

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

相关推荐
灰小猿1 分钟前
Spring前后端分离项目时间格式转换问题全局配置解决
java·前端·后端·spring·spring cloud
会跑的兔子5 分钟前
Android 16 Kotlin协程 第一部分
android·开发语言·kotlin
Js_cold18 分钟前
Verilog函数function
开发语言·fpga开发·verilog
我是苏苏21 分钟前
C#基础:如何从现有类库复制一个新的类库,并且加入解决方案
开发语言·c#
算法与编程之美26 分钟前
理解Java finalize函数
java·开发语言·jvm·算法
怕什么真理无穷32 分钟前
C++面试4-线程同步
java·c++·面试
lkbhua莱克瓦2435 分钟前
Java基础——常用算法5
java·开发语言·笔记·github
cs麦子43 分钟前
C语言--函数(function)
c语言·开发语言
snowfoootball43 分钟前
python函数及面向过程高级特性
开发语言·python
牢七44 分钟前
javan小案例。
java