AOP@Work: 用AspectJ进行性能监视,第2部分 - 编程入门网
ntroller);
}
protected Object getKey() {
return controller.getClass();
}
};
return rc.execute();
}
// Controller where the name of the signature at the monitored join point
// determines what is being executed, for example, the method name
/**
* This defaults to no join points. If a concrete monitor overrides
* methodSignatureControllerExec with a concrete
* definition, then it will track operations at matching join points
* based on the run-time class of the executing controller instance
* and the method signature at the join point.
*/
protected pointcut methodSignatureControllerExec(Object controller);
Object around(final Object controller) :
methodSignatureControllerExec(controller) {
RequestContext rc = new OperationRequestContext() {
public Object doExecute () {
return proceed(controller);
}
protected Object getKey() {
return concatenatedKey(controller.getClass(),
thisJoinPointStaticPart.getSignature().getName());
}
};
return rc.execute();
}
AOP@Work: 用AspectJ进行性能监视,第2部分(3)时间:2011-09-07 IBM Ron BodkinclassControllerExec() 的切点捕获所有类控制器处理请求的点,像 Servlet do 方法执行或者普通 Struts action execute 方法,在这里响应请求的对象的 类确定要执行的操作。更准确地说, classControllerExec() 切点 定义了一个 空的切点(它不会匹配任何连接点)。然后它提供一个具体建议,这个建议设置 工人对象并返回对于这种情况正确的键值。这与使用一个抽象切点类似,其中子 方面必须覆盖切点以使用建议。不过在这里,我提供了永远不匹配的默认定义。 如果 AbstractOperationMonitor 的子方面不需要监视类控制器,那么它不覆盖 这个切点就行了。如果它需要监视类控制器,那么它就提供什么时候监视一个点 的定义。 具体化操作监视器 methodSignatureControllerExec() 切点和关联的建议类似:它们提供具体 化 操作监视方面的方法,以根据连接点上的签名匹配分派到不同方法的控制器。 清单 3 展示了扩展 AbstractOperationMonitor 以监视 Struts 和 Spring MVC 操作的具体方面: 清单 3. 监视 Struts 和 Spring MVC 框架
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |