当前位置:  开发笔记 > 编程语言 > 正文

使用Spring AOP进行方法分析(基本执行时间)

如何解决《使用SpringAOP进行方法分析(基本执行时间)》经验,为你挑选了1个好方法。

我正在寻找一个功能或软件,他将允许我轻松地分析我的方法执行时间,并选择通过包过滤器分析的内容.

我知道,它是分析器101.我使用TPTP分析器.但我对它并不满意.坦率地说,我只是不明白它是如何工作的,当我描述我的应用程序(在分析模式下启动服务器)时,它将永远无所事事.(好吧,不是我的期望:简单的执行时间输出)

所以我用系统时间自己进行分析(在方法的开头和结尾添加一行).也不是那么坏.

我的问题是:我想在使用Spring AOP调用方法之前和之后测量系统时间,你能给我指点吗?这是一个好/坏的主意?代码库非常大,我们没有很多单元测试,难道不是"危险"吗?

我不是要求代码,我想我可以用这种链接自己做:http: //static.springsource.org/spring/docs/2.5.x/reference/aop.html

但如果你有一个很好的教程(以前从未做过AOP,只知道这个概念),我就接受了.



1> Gregory Most..:

在Spring中有一个内置的支持.

我试图寻找教程,但令人惊讶的是我没有找到它,所以我会尝试在这里解释它.(编辑:我在这里将这个例子添加到我的博客中)

基本上你需要的是像这样扩展CustomizableTraceInterceptor类:

public class MyTraceInterceptor extends CustomizableTraceInterceptor {

  protected void writeToLog(Log logger, String message, Throwable ex) {
    if (ex != null) {
        logger.info(message, ex);
    } else {
        logger.info(message);
    }
  }


  protected boolean isInterceptorEnabled(MethodInvocation invocation, Log logger) {
    return true;
  }
}

此类包装您的bean并输出方法调用信息,包括参数,返回值和执行时间到日志.通过更改writeToLog()方法,您可以控制要输出数据的位置以及严重程度.

现在您需要一些XML来实际选择要包装的bean:

    



    

    





    

    

    

        

            traceInterceptor

        

    

    


基本上你定义要用"beanNames"中的通配符包装的bean,"order"控制包装的顺序 - 如果你没有其他AOP类,你可以删除它.如果更改enterMessage和exitMessage属性,也可以更改输出格式.

这应该足以让你开始.如果您需要澄清,请不要犹豫.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有