当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 作者简介 薛谷雨,NORDSAN(北京)信息科技开发有限公司高级JAVA研发工程师,正致力于企业级异构数据交换的服务器产品的研发,在J2EE和WEB SERVICE方面有较为丰富的开发经验,您可以通过rainight@126.com与他联系。
 

 

 ·郁闷,还得修改刚才的程序。    »显示摘要«
    摘要: 现在我们在已有的程序的基础上继续: adding html adding an icon setting the default button creating a formatted text field import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax......
 ·roller的0.9.9.2的demo发布了    »显示摘要«
    摘要: try roller, its easy! to make it easier for folks to try roller, i have created a standalone roller demo by bundling roller with jspwiki, tomcat, and the tiny pure-java hsqldb database. everything ......


代码动态生成利器ASM

作者简介

薛谷雨,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文件格式


...   下一页
 ·设计模式与spring的mvc结构    »显示摘要«
    摘要: 1)派遣器模式spring有一个统一集中的派遣器org.springframework.web.servlet.dispatcherservlet,一般在web.xml中把所有的页面请求都发送到该派遣器:<servlet> <servlet-name>countries</servlet-name> <servlet-class>org.sprin......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE