快速业务通道

AOP@Work: 使用AspectJ 5检验库方面 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
找 出其中的方法未得到实现的类。您不得不承认 AspectJ 仅能检查各联结点 shadow 是否有效。它无法找出不存在的联结点 shadow,也无法对程序结构作出 一般性断言。针对这些任务,您推荐使用 JQuery,而 JDepends 则适于进行相 关 性检查。得到这些说明后,Zed 表示,由于方面是可选的(对于编译程序而言非 必需),因此可以在开发时使用。但就重要的静态检查而言,Erin 或许应该使 用 一些更有意义的方法。

AOP@Work: 使用AspectJ 5检验库方面(5)

时间:2011-09-07 IBM Wes Isberg

Faye 的失败促进了样本代码的消除

Faye 在代码审查时未能遵照 Erin 的命令完成工作,由于此后还有许多静态 检查工作,所以她希望您能提供一些帮助。她负责处理包含大量样本代码的最优 方法。经过简短的探讨后,您给了她 3 个抽象方面:

表 2. 样本代码的方面

EqualsBoilerplate 在出现匹配之前一致地处理所有为空的情况 (Object)
NoNullParameters 在公共方法传递空参数时抛出异常
TrimInputStreamRead 将任何 read(..) 调用调整到可用字节

Faye 像 Erin 那样部署了具体子方面,两个人都非常满意。但 Zed 担心样 本 方面将要部署在产品代码中(即便样本方面是可选的,且程序可在不使用它们的 情况下进行编译)。Buddy 参与了谈话,他认为 EqualsBoilerplate 是一种聊 胜 于无的解决方案。它在调用之前 检查调用目标是否为空,从而避免了若干 NullPointerException。由于必须在每一个调用 equals(..) 的地方进行这样的 检查,所以 Zed 认为在这些方面未出现问题之前,可以暂时使用。

Gail 收集异常日志

Gail 要做大量记录,这使她忙得不可开交,甚至于无法参与讨论。Zed 要求 她提出记录异常日志的解决方案。她对代码块相当熟悉,希望能找到其他方法。 了解她的需求后,您为她提供了一些用于记录日志的简单方面,如表 3 所示:

表 3. 简单的日志记录方面

SystemStreamsToLog 将系统流调用重定向到日志记录程序
ObserveThrown 除非忽略,否则将抛出的所有异常记录到日志中
ObserveThrownContext 与 ObserveThrown 类似,不同之处是带有联结点上下文

Gail 可使用切入点(这将令 Arnold 分外高兴)和普通的 Java 方法重写( 这是 Zed 赞成的方法)来调整方面。与配置时仅需简单切入点的库不同, ObserveThrown 具有重写方法 observeException(Throwable)、getLogLevel (Throwable) 和 ignoreException(Throwable)。默认情况下,方面会使用自己 的 与切入点相关的日志记录程序,这对 Gail 来说比每个类的日志记录程序更有意 义。Gail 可部分地理解库方面,因为它通常委托给超类 ThrownObserver 中的 方 法,如清单 6 所示:

清单 6. 观察异常

public abstract aspect ObserveThrown extends ThrownObserver {    abstract protected pointcut observe();    /** Observe exception */  after() throwing (Throwable thrown) : observe() {   // skip if ignored or registered   if (observingThrown(thrown)) {    // log or ??     observeException(thrown);    // register to avoid duplicate calls    registerThrown(thrown);   }  } }

AOP@Work: 使用AspectJ 5检验库方面(6)

时间:2011-09-07 IBM Wes Isberg

观察了新日志后,Zed 对其一致性非常满意,但就仅记录堆栈跟踪的情况提 出 了反对意

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