1.0 动态字节码生成技术简介
2017-04-29 17:34:02
20,205
1
关于java字节码的处理,目前有很多工具,如javassist
,bcel
,asm
,cglib
,以及jdk6引入的JavaCompiler
等。
其中,CGLib的底层基于ASM实现,是一个高效高性能的生成库;而ASM是一个轻量级的类库,但需要涉及到JVM的操作和指令。这些实现都需要直接跟虚拟机指令打交道。如果你不想了解虚拟机指令。
javassist是jboss的一个子项目,其主要的优点,在于简单,而且快速。直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。如果你不想了解虚拟机指令,可以采用javassist。
另外JDK6引入的JavaCompiler类,也可以帮助我们动态生成字节码对象。
很多框架都使用了动态字节码技术,例如mybatis,hibernate,spring,Struts2,dubbo等。
本教程除了介绍这些动态字节码技术如何使用外,还会介绍这些技术在以上这些框架中是如何使用的。
下一篇:2.0 javassist