快速业务通道

AOP@Work: 使用方面的下几个步骤-学习建议之后 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
,由于强制执行了性能临界要 求,方面导致测试因耗时太长而失败。这样自动强制执行了一种策略,即特定操 作不能耗时太长,这比检查测试运行所产生的日志更可靠!

AspectJ in Action(请参阅 参考资料)包含另一个与此类似的强制执行示例。它包含一个 策 略强制执行方面,查找线程在 Swing 中使用不当的情况。当需要避免能够引起 严 重后果的微小 bug 时,强制执行方面能够真正起到不同凡响的作用。

还 可以尝试使用方面来强制执行不允许从一个包调用另一个包等策略。在下面的代 码段中,我使用 EnforceLayering 方面来阻止程序从数据访问层调用模型代码 :

aspect EnforceLayering {   public pointcut modelCall() :     call(public * com.example.myapp.model..* (..));   public pointcut inDataAccess() :     within (com.example.myapp.persistence..*);   declare warning: modelCall() && inDataAccess():      "Don''t call the model from the data access tier"; }

使 用 上述所有方面,可以尝试一下横切思想,同时一网打尽程序中的逻辑问题。研究 了这些简单的入门级方面之后,可以探索更多方法来边学习边试验,为此引入了 库方面。

AOP@Work: 使用方面的下几个步骤-学习建议之后(5)

时间:2011-09-07 IBM Ron Bodkin

用库方面学习

预构建的库方面在目前来说相对新颖,但 一些好的集合现在已可使用,其中包括 Spring 框架、Glassbox Inspector、 JBoss Cache 和 GOF 模式库(请参阅 参考资料 来下载这些库)。当然,许多 Spring 和 JBoss 用户在没有意识到的情况下已经在使用方面了,但您可以学到 更多,特别是,只需再前进一步就能跟上 AOP 领域最新的技术。对于初学者, 尝 试一下下面这个简单的练习:

配置沙盒以使用预构建的方面库。这可能 意 味着创建 AspectJ 构建并将其织入 IDE 中的现有项目是一个相当小的项目。或 者可能意味着设置 Tomcat 5.5 和 Java™ 5 的副本来实现容易的加载时 织 入。不久,它甚至可能意味着下载具有内置 AOP 支持的 VM,比如 BEA JRockIt 最近已经原型化了!(请参阅 参考资料 中 Joe Shoop 的示例沙盒以及有关加 载 时织入支持的信息。)

运行系统并查看预构建方面如何处理跟踪性能、应用安全性或管理事务处理 等 要求。在一些情况下,这意味着连接客户机以查看新数据。在其他情况下,这意 味着编写小集成测试以展示方面按照预期正在与您的代码进行交互。甚至可能编 写另一个方面来跟踪库方面的效果。

根据您的环境配置库。阅读有关如何将方面应用于系统的文档。这可能意味 着 用具体方面扩展抽象方面,使用切点将其应用于系统,或使用声明父项将标记接 口添加到系统中的一些类型。如果总是用注释配置方面,不妨尝试使用 declare @annotation 捕获应该应用方面的位置,而不是在整个应用程序中编写注释。

例如,可以尝试使用 Spring 2.0 配置方面,它构建在 Adrian Colyer 的 “ 用 AspectJ 和 Spring 进行依赖项插入” 中所示的代码之上;在这种情况下, 可以提供 AnnotationBeanConfigurerAspect 所捕获的 @Configurable 注释。 或 者可以仅扩展 AbstractBeanConfigurerAspect 基本方面中的 beanCreation 切 点。我在下一节中还提供了用加载时织入扩展 Glassbox Inspector 库的比较高 级的示例。

可选地阅读其中一些库代码以理解它们如何运作。可以针对环境尝试一些小 更 改或扩展。研究在您的环境中可以如何用方面进行最好的开发。

阶段 2. 解决实际问题

在本阶段,重点转移至应用方面来解决实际问题,但仍是勉强为之。主要问 题 已经由 “这有用吗?” 上升到 “如何能够真正使用它?&rdq

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