科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用Spring 2.0和AspectJ简化企业应用程序

用Spring 2.0和AspectJ简化企业应用程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在本文中,作者首先了介绍在典型的企业应用程序中,Spring AOP和AspectJ适用于什么地方,之后介绍在2.0中新的Spring AOP支持。

作者:Adrian Colyer译者 俞黎敏 来源:infoq.com 2007年11月18日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共10页)

简化“基础结构”需求的实现

当你越来越习惯于AspectJ和所配套的工具组时,你就可以用AspectJ来实现影响你应用程序所有部分的需求,包括领域模型。作为一个简单的实例,我将向你介绍如何剖析jpetstore范例的应用程序。让我们首先看一下Profiler方面,然后填入一些外围的细节:

public aspect Profiler {
private ProfilingStrategy profiler = new NoProfilingStrategy();
public void setProfilingStrategy(ProfilingStrategy p) {
this.profiler = p;
}
pointcut profiledOperation() :
Pointcuts.anyPublicOperation() &&
SystemArchitecture.inPetStore() &&
!within(ProfilingStrategy+);
Object around() : profiledOperation() {
Object token = this.profiler.start(thisJoinPointStaticPart);
Object ret = proceed();
this.profiler.stop(token,thisJoinPointStaticPart);
return ret;
}
}

我们已经将profiledOperation()定义为[the]PetStore()中的anyPublicOperation()了。该方面表现得就像委托给ProfilingStrategy的控制器,我们将利用依赖注入通过Spring对它进行配置。

class="org.springframework.samples.jpetstore.profiling.Profiler"
factory-method="aspectOf">




class="org.springframework.samples.jpetstore.profiling.JamonProfilingStrategy"
init-method="reset"
destroy-method="report">

注意给方面bean使用了“factory-method”属性,这是配置单例(singleton)AspectJ方面和配置一般的Spring bean之间的唯一区别。我正在用JAMon进行剖析,它提供了一个非常简单的API。

public class JamonProfilingStrategy implements ProfilingStrategy {
public Object start(StaticPart jpStaticPart) {
return MonitorFactory.start(jpStaticPart.toShortString());
}
public void stop(Object token, StaticPart jpStaticPart) {
if (token instanceof Monitor) {
Monitor mon = (Monitor) token;
mon.stop();
}
}
}

这就是我们激活适用于整个pet store的剖析所必须做的全部工作。通过将JAMon提供的jsp增加到pet store应用程序,我们就可以在Web浏览器中观看到剖析的输出。以下是我在应用程序周围点击一会之后的屏幕快照:

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章