快速业务通道

AOP@Work: 用新的AJDT本本简化AOP开发 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
看到编辑器左手边的标记图标。这些标 记将指出通知的存在和类型,使用的图标与 Outline 和 Cross References 视图 中的图标相同。有一些分别表示 before、after 和 around 通知的不同图标。每 种图标都有两个变体:有小问号的和没有小问号的。问号表明存在运行时测试, 以确定是否在这个位置应用通知,例如什么时候在切入点中使用 cflow 指示器。 没有问号的变体用在编译的时候就可以完全确定匹配的地方。

如果在标记上右击,就会在上下文菜单中看到 Advised By entry,以及一个 显示通知的来源的子菜单。如果选择其中的一个条目,编辑器会打开并显示这个 通知。在通知中会看到额外的标记,这些标记从另一个方向显示横切关系,并且 还带有一个 Advises 子菜单,如图 4 所示。这些对称的标记支持在通知的源和 目标之间进行一致的导航。类似的标记和子菜单也可以用来表示其他横切信息, 例如类型间声明。

图 4. 通知的标记和上下文菜单

AOP@Work: 用新的AJDT本本简化AOP开发 - 编程入门网

图像装饰器也可以用来表示横切信息。如果回过头来看一下 图 1 所示的 Outline 视图,就会看到在视图的三个方法的左边有一个小的橙色箭头。这个箭 头是 Eclipse 用于 Java 元素的图像装饰器。可用它表示指定元素是否受通知的 直接影响,或者是否包含正被通知的连接点。这个有帮助的可视线索会在任何 Java 元素出现的地方出现,其中包括 Outline 视图、Cross References 视图和 Java Browsing perspective 中的 Members 视图。

AOP@Work: 用新的AJDT本本简化AOP开发(4)

时间:2011-09-04 IBM Matt Chapman

转换 Java 项目

从简单的测试项目得到 AspectJ 和 AJDT 的一些经验之后,开发人员的下一 步通常是采用一个现有的 Java 项目,尝试在一个或两个方面扩展它。例如,您 可能想添加强制方面,例如检测对 System.out.println 或 Exception.printStackTrace 意外调用的方面,或者 生产方面,例如实现持久性 的方面,或者某个设计模式的面向方面实现。

将 Java 项目转换成 AspectJ 项目很简单。只需在项目上右击并选择 Convert to AspectJ Project 即可。从 Eclipse 的角度来说,是将 AspectJ 性 质添加到项目中,并转而使用 AspectJ 编译器,就好像从头开始创建 AspectJ 项目那样。这个过程没有什么需要多提的,它可以应用到任何具有 Java 性质的 项目上,其中包括更高级的项目,例如 Eclipse 插件项目。这个过程也是可逆的 ,也就是说,可以使用上下文菜单项来删除 AspectJ 性质并切换回 Java 编译器 。

一旦用 AspectJ 项目替代了 Java 项目,您可能想知道它们的区别是什么。 至少最初的答案是“它们的区别非常小”。您可以继续在 Java 编辑器中编辑 Java 类,采用标准的文档大纲视图和以前一直使用的所有特性(包括快速修复、 内容辅助以及通过红线得到早期错误提示)。同样,把更改保存到类中会导致对 项目进行快速递增编译,您也可以从项目的属性页面上设置所有相同的编译器选 项。每个合法的 Java 程序都是合法的 AspectJ 程序,所以可以像以前那样编译 代码。

实际上,AspectJ 编译器是 Eclipse Java 编译器的扩展,而 AJDT 则尽可能 一致、透明地扩展 JDT 工具。这就是我们谈到无缝集成时所指的内容。这是 AJDT 1.2/1.3 的主要重点领域之一,而且我们已经取得了好的进展(我在文章后 面部分会指出一些仍然存在的限制)。无缝集成的目标是让切换到 AspectJ 项目 的第一步变得尽可能的容易;这为从使用方面进行编码中获得实际有用的东西铺 平了道路。

管理多个项目

构建 AspectJ 源代码需要两个不同阶段:编译 .java 和 .aj 文件中的源代 码来生成 .class 文件,然后将方面应用到生成的 .class 文件中。第二个阶段 称为编织,这是 AspectJ 和 Java 编译器的主要区别

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号