快速业务通道

Java中实现基于Aspectwerkz的AOP开发 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
Aspectwerkz,因为它可能是最容易学习的框架,也是最容易集成到现有项目的框架。

Aspectwerkz由Jonas Boner和Alexandre Vasseur创建,它是目前最快速、功能最丰富的框架之一。虽然它还缺乏AspectJ的某些功能,但己足以满足大多数开发者在许多情形下的需要。

Aspectwerkz最令人感兴趣的特性之一是它能够以两种不同的模式运行:联机模式和脱机模式。在联机模式下,AW直接干预属于JVM的底层类装入机制,截取所有的类装入请求,对字节码实施即时转换。AW提供了干预类装入过程的许多选项,另外还有一个替代bin/java命令的封装脚本,这个脚本能够根据Java版本和JVM能力自动生成一组可运行的配制。对于开发者,联机模式有许多优点,它能插入到任何类装入器并在类装入期间生成新的类。也就是说,我们不必手工修改应用程序的类,只要按通常的方式部署即可。不过,联机模式要求对应用服务器进行额外的配制,有时这一要求可能很难满足。

在脱机模式下,生成类需要二个步骤。第一步是用标准的编译器编译,第二步是重点——以脱机模式运行AWcompiler编译器,让它处理新生成的类。编译器将修改这些类的字节码,根据一个XML文件的定义,在适当的point-cut插入advice。脱机模式的优点是AWcompiler生成的类能够在任何JVM 1.3以上的虚拟机运行,本文下面要用的就是这种模式,因为它不需要对Tomcat作任何修改,只要对构造过程稍作修改就可以照搬到大多数现有的项目。

四、安装

本文将以一个简单的Web应用程序为例,它用Ant编译,部署在Tomcat 4+ Servlet容器上。下面我们假定读者己准备好上述环境,包括JVM 1.3+,同时Tomcat被设置成从webapps文件夹自动部署应用,自动将WAR扩展到目录(这是Tomcat默认的操作方式,因此只要你尚未修改Tomcat的运行方式,下面的范例可直接运行)。我们将把Tomcat的安装位置称为%TOMCAT_HOME%。

⑴ 从http://apectwerkz.codehaus.org/下载Aspectwerkz,解开压缩到适当的位置。我们将把这个位置称为%ASPECTWERKZ_HOME%。

⑵ 设置%ASPECTWERKZ_HOME%环境变量。

⑶ 将Aspectwerkz加入到PATH环境变量,即设置set PATH=%PATH%;%ASPECTWERKZ_HOME%\bin\aspectwerkz

⑷ 下载本文的示范程序,将它放入%TOMCAT_HOME%\webapps文件夹。

⑸ 将Aspectwerkz的运行时类加入到Tomcat的classpath。你可以将它的JAR文件放入示例应用的WEB-INF\lib文件夹,或放入%TOMCAT_HOME%\common\lib。

五、编译示例应用

如果你想深入研究一下本文的示例应用,可以解开WAR文件提取它的内容。你会发现根目录下有一个aspectwerkz.xml文件,构造应用时它会被复制到WEB-INF/classes目录。Servlet和advice的源文件在WEB-INF/src目录下,另外还有一个构建这些类的ANT脚本。

在运行这个示例程序之前,你还要对它进行后期编译。下面是具体的操作步骤:

⑴ 在命令行窗口中,转到解开WAR文件的目录。

⑵ 输入下面的命令调用AW编译器:aspectwerkz -offline aspectwerkz.xml WEB-INF/classes -cp %TOMCAT_HOME%\common\lib\servlet.jar。如后期编译顺利通过,应看到下面的输出:

( 1 s )

SUCCESS: WEB-INF\classes

在构建文件中有一个名称为war的ANT任务,你可以用它重新创建WAR文件。

六、运行示例应用

首先启动(或重新启动)Tomcat,然后在浏览器中打开http://localhost:8080/demo/。

页面打开后,可以看到一个带二个输入框的HTML表单,一个输入名字,一个输入邮件地址。输入一些数据,然后点击按钮提交表单,出现一个页面显示出联系人信息和一个指向联系人清单的链接。

Java中实现基于Aspectwerkz的AOP开发(3)

时间:2010-12-05

七、代码分析

JSP页面就不分析了,现在我们对它不感兴趣。我们来看看AOPServlet的代码。

package exa

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号