JVM字节码增强技术详解,有哪些关键点?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4705个文字,预计阅读时间需要19分钟。
目录+ 字节码增强技术 + ASM + Javassist + 运行时类加载 + 问题引导+ Instrument & JVMTI & Agent & Attach API + 使用场景 + 总结+ 字节码增强技术 + 介绍字节码的结构 + 理解字节码增强技术
目录
- 字节码增强技术
- ASM
- Javassist
- 运行时类的重载
- 问题引出
- Instrument
- JVMTI & Agent & Attach API
- 使用场景
- 总结
字节码增强技术
在上文中,着重介绍了字节码的结构,这为我们了解字节码增强技术的实现打下了基础。字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。接下来,我们将从最直接操纵字节码的实现方式开始深入进行剖析
ASM
对于需要手动操纵字节码的需求,可以使用ASM,它可以直接生产 .class字节码文件,也可以在类被加载入JVM之前动态修改类行为(如下图17所示)。ASM的应用场景有AOP(Cglib就是基于ASM)、热部署、修改其他jar包中的类等。当然,涉及到如此底层的步骤,实现起来也比较麻烦。接下来,本文将介绍ASM的两种API,并用ASM来实现一个比较粗糙的AOP。
本文共计4705个文字,预计阅读时间需要19分钟。
目录+ 字节码增强技术 + ASM + Javassist + 运行时类加载 + 问题引导+ Instrument & JVMTI & Agent & Attach API + 使用场景 + 总结+ 字节码增强技术 + 介绍字节码的结构 + 理解字节码增强技术
目录
- 字节码增强技术
- ASM
- Javassist
- 运行时类的重载
- 问题引出
- Instrument
- JVMTI & Agent & Attach API
- 使用场景
- 总结
字节码增强技术
在上文中,着重介绍了字节码的结构,这为我们了解字节码增强技术的实现打下了基础。字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。接下来,我们将从最直接操纵字节码的实现方式开始深入进行剖析
ASM
对于需要手动操纵字节码的需求,可以使用ASM,它可以直接生产 .class字节码文件,也可以在类被加载入JVM之前动态修改类行为(如下图17所示)。ASM的应用场景有AOP(Cglib就是基于ASM)、热部署、修改其他jar包中的类等。当然,涉及到如此底层的步骤,实现起来也比较麻烦。接下来,本文将介绍ASM的两种API,并用ASM来实现一个比较粗糙的AOP。

