快速业务通道

用AspectJ构造方面库 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
所示。

图 3 继承抽象Aspect

用AspectJ构造方面库(4)

时间:2011-05-15 IBM 春郭迎 志甘 鹏刘昕

在图 3中,我们可以指定在新的Aspect中实现所有的抽象pointcut,这样能让 AJDT帮助我们多做一些工作。最后生成并修改后的代码如清单 5所示,它具体化 了抽象pointcut,指明这个方面库应用的范围,即切入点是任何函数执行的时刻 。

清单 5 继承抽象Aspect

package aspects; import sample.aspects.library.AbstractTrace; public aspect Trace extends AbstractTrace {   public pointcut TraceScope():execution(* *(..)); }

从清单 5中我们可以看出,通过使用已有的方面库,用户需要编写的代码变得 非常简洁。商务逻辑的开发人员可以不去了解AspectJ的一些高级用法,他们只需 要指定哪些时候需要用到方面中提供的功能就可以了。

4.使用注释构造方面库

前面介绍了使用抽象方面构造一个记录踪迹的方面库并实施到具体应用中,这 章我们采用注释技术构造一个方面库,以完成同样的功能。

与前面一章相同,首先创建一个AspectJ的工程,工程名为 sample.annotation.library。需要注意的是,因为要在工程中使用注释类型,所 以JDK依从的版本必须为5.0。如果你目前的缺省设置不是5.0,请如图所示在JDK Compliance中选择"为工程指定一个",设置为5.0。或者在工程的properties对话 框中选择Java Compiler页面修改。

图 4 修改JDK Compilance

用AspectJ构造方面库(5)

时间:2011-05-15 IBM 春郭迎 志甘 鹏刘昕

接下来要做的就是新建一个标准Java注释类型,在Eclipse中点击File- >New->Other弹出New对话框,选择 Java下面的Annotation,设定它的 Package为sample.annotation.library,名称叫做trace,其他接受缺省值,点击 完成。这样,一个名叫trace的注释类型就被创建出来了,我们将基于它创建一个 记录踪迹的方面库。

接下来创建方面库中的Aspect,即一个aj文件,文件如清单 6所示。

清单 6 捕捉注释的Aspect

package sample.annotation.library; public aspect AnnotationTrace {   pointcut traceScope():execution(@trace * *(..));   Object around():traceScope(){   Object sig = thisJoinPoint.getSignature();   System.out.println("Enter "+sig);   Object res = proceed();   System.out.println("Exit "+sig);   return res;   } }

这样,方面库的编码工作就完成了,与上一个例子类似,我们把它打包成 tracelib.jar文件备用。

现在我们来介绍如何应用方面库tracelib.jar。创建一个新的AspectJ项目 sample.annotation.application,注意,因为要使用注释类型,修改JDK Compliance为5.0。新建一个标准Java类business.logic.MainLogic,添加简单函 数testTrace(),用这个 Java类来模拟应用程序。

为了使用方面库,首先必须将方面库的jar文件添加到AspectJ Aspect Path中 ,在工程的properties对话框中选择AspectJ Aspect Path页面添加方面库的jar 文件,如图 5所示。在应用程序MainLogic类中使用记录踪迹的功能时,只需要简 单的将@trace添加到想要使用这个功能的函数前面即可。MainLogic 类的源码如 清单 7所示。将MainLogic类作为AspectJ/Java Application来运行,可以看到输 出结果,在testTrace()调用之前和之后,加入了记录踪迹的语句,如清单 8所示 。这样就达到了我们使用方面库tracelib.jar的目的。相比较而言,通过注释技 术实现的方面库使用起来是更为便捷。

图 5 添加AspectJ Aspect Path

用AspectJ构造方面库(6)

时间:2011-05-15 IBM 春郭迎 志甘 鹏刘昕

清单 7 应用程序MainLogic源码

packag

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

分享到: 更多
用作应用程序内的一种持久框架 - 编程入门网" target="_blank">iBATIS 3内的新特性:将iBATIS用作应用程序内的一种持久框架 - 编程入门网
  • Photoshop绘制高光水晶质感水晶苹果
  • 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号