Classworking工具箱: 将aspect放到werk中 - 编程入门网
etSignature();
System.out.print(signature.getName());
System.out.print(''('');
MethodRtti rtti = (MethodRtti)call.getRtti();
System.out.print(rtti.getParameterValues()[0]);
System.out.print('')'');
}
public Object traceLong(JoinPoint join) throws Throwable {
// print entering information
indent();
System.out.print("Entering method ");
printCall(join);
// execute the joinpoint method
m_nestingDepth++;
Object result = join.proceed();
m_nestingDepth--;
// print exiting information
indent();
System.out.print("Leaving method ");
MethodSignature signature =
(MethodSignature)join.getSignature();
System.out.print(signature.getName());
System.out.print(''<'');
System.out.println(result);
// return result from method call
return result;
}
Classworking工具箱: 将aspect放到werk中(6)时间:2011-10-16 IBM Dennis Sosnoski从名字上可以看出,around advice 包围了 pointcut 执行。当要执行 pointcut 时调用它,并且具 有决定什么时候执行 —— 甚至是否执行 —— pointcut 的灵活性。在清单 6 的代码中,我尽量使 around advice 的处理简单化。在这里,advice 代码(traceLong() 方法)首先在当前缩进位置打印方 法名和参数值。然后调用方法并保存结果,然后在比当前缩进位置再缩进的位置打印方法名和返回值。 需要调整 XML 配置以使用这个新的 advice,但是这种改变很容易。下面是文件中的 aspect 元素, 改变的地方用粗体标出:
清单 7 给出了用这种新的 advice 产生的输出。 清单 7. 带缩进和值打印的输出
Classworking工具箱: 将aspect放到werk中(7)时间:2011-10-16 IBM Dennis Sosnoski让它更 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |