1.0 动态字节码生成技术简介

2017-04-29 17:34:02 4,135 0


关于java字节码的处理,目前有很多工具,如javassistbcelasm,cglib,以及jdk6引入的JavaCompiler等。

其中,CGLib的底层基于ASM实现,是一个高效高性能的生成库;而ASM是一个轻量级的类库,但需要涉及到JVM的操作和指令。这些实现都需要直接跟虚拟机指令打交道。如果你不想了解虚拟机指令。

javassist是jboss的一个子项目,其主要的优点,在于简单,而且快速。直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。如果你不想了解虚拟机指令,可以采用javassist。

另外JDK6引入的JavaCompiler类,也可以帮助我们动态生成字节码对象。

很多框架都使用了动态字节码技术,例如mybatis,hibernate,spring,Struts2,dubbo等。

本教程除了介绍这些动态字节码技术如何使用外,还会介绍这些技术在以上这些框架中是如何使用的。

下一篇:2.0 javassist