作者简介
薛谷雨,nordsan(北京)信息科技开发有限公司高级java研发工程师,正致力于企业级异构数据交换的服务器产品的研发,在j2ee与web service方面有较为丰富的开发经验,您可以通过rainight@126.com与他联系. 【程序编程相关:Eclipse的启动问题】
【推荐阅读:扫雷游戏源码(1)】 【扩展信息:DOM基础&实例】前言
代码生成器(code generator,cg),顾名思义就是生成代码的工具.有了它,你就可以从一组简单的设定或者数据库设计中获得几百.几千行代码.如果不采用这项技术的话,开发者就不得不花上几个小时或者几天的时间来手工编写这些代码.另一方面,优秀的开发工具为了提供其独特的功能或者屏蔽一些容易出错的细节,也往往采用代码生成技术为使用者提供一个程序的模板框架,其目的也是为了提高编程的效率.以上观点仅是对代码生成器的一般理解,换句话说,这似乎是一个可有可无的东西,没有它,不过是多费一些人工而已.然而,本文要介绍的这套名为asm的java工具类的功能非同小可,它可以生成java字节码,也就是class文件.你可以在应用程序中根据情况动态生成各式各样的class,然后就调用,达到一种近乎上帝造物般的神奇.心动不如行动,如果你也想在自己的开发中引入这一超前的编程技术,请看此文.
小巧而神奇的asm
asm是一套java字节码生成架构.它可以动态生成二进制格式的stub类或其他代理类,或者在类被java虚拟机装入内存之前,动态修改类.asm 提供了与 bcel( http://jakarta.apache.org/bcel )与serp( http://serp.sourceforge.net/ )相似的功能,只有22k的大小,比起350k的bcel与150k的serp来说,是相当小巧的,并且它有更高的执行效率,是bcel的7倍,serp的11倍以上.asm一贯的设计思想就是将其应用于动态生成领域,因此小巧与快捷一直是这个产品的设计与实现的指导思想.
此产品由法国电信公司的研发工程师eric bruneton负责.从2002年7月asm的第一个版本发布至今,此产品已经升级了五次,日臻完美.到目前为止,asm最新的版本是1.3.5,你可以去 http://asm.objectweb.org/ 下载.
asm的最终目标是创建一个生成工具,可以被用来执行对任何类的处理操作(不像一些工具,比如javassit,它只支持预先定义的类操作,然而在许多场合这一功能是有局限性的).
java的class文件格式
... 下一页