网站: JavaEye 作者: ahuaxuan 发表时间: 2007-08-14 18:14 此文章来自于 http://www.iteye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://www.iteye.com/topic/112172
/** 前两天在看Spring内置的拦截器的时候,发现了一个之前没有注意的类:org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor,好奇心促使我上网查了一下这个jamon。大概看了一下之后发现这个玩意还真挺好用的而且挺重要的,而且现在国内对它的介绍也很少,所以写了一篇文章和大家分享。 一,Jamon简介: 二,将jamon导入到你的应用程序中去 接着把例子中的所有的包都导入到项目中,并把war包中的jsp和images还有css都考到项目中,比如新建一个目录叫monitor(它和WEB-INF是同级目录)。 三,正确配置自己的应用 1, 检测自己的页面访问率
代码
接下来我们看看这个filter的写法:
代码
/** * @author 张荣华(ahuaxuan) * * @since 2007-8-13 */ public class PageMonFilter extends JAMonFilter{ private static final long serialVersionUID = 5746197114960908454L; public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { Monitor allPages = MonitorFactory.start(new MonKeyImp("org.easywebwork.allPages",getURI(request),"ms.")); //这里就是我们要监视的所有的页面的配置 Monitor monitor = MonitorFactory.start(getURI(request)); //这里就是我们要监视的某个页面的配置 try { filterChain.doFilter(request, response); } finally { monitor.stop(); allPages.stop(); } } protected String getURI(ServletRequest request) { if (request instanceof HttpServletRequest) { return ((HttpServletRequest) request).getRequestURI(); } else { return "Not an HttpServletRequest"; } } private FilterConfig filterConfig = null; }}
这个类看上去很简单,其实也挺简单的,就是得到uri,然后把它注册到MonitorFactory类中。这样只要我们去访问刚才创建的monitor目录下的jsp就可以看到性能监测页面了。 2, ,接下来我们看看在使用spring的情况下如何监测一个bean的方法调用。Spring也提供了对Jamon的支持(spring支持的东西还真多啊),也就是文章开头提出的那个拦截器,为了给我们的bean加上拦截器,我们在spring的applicationcontext配置文件中加入如下语句:
代码
上面这个是典型的spring的aop的配置,如果对spring的aop配置不了解的可以去看一下spring中文文档,当然如果不想了解的话即使直接把这段配置拷到自己的项目中也是可以直接使用的。 还有一个步骤就是在你的log4j.properties中加入这句代码:
代码
log4j.logger.org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor = TRACE
如果没有这一行,那么这个拦截器是不会把方法调用的信息向MonitorFactory注册的。 只需要这些步骤,userservice中的方法在调用的时候就可以被拦截,然后将其注册到MonitorFactory中去了。 所有的配置完成之后我们来看一下效果吧: 三,总结 其实本文提供的只是对页面和方法调用的监控,但是jamon可以提供更多功能,比如说sql语句的监控等等,这就需要我们共同去发掘了。 附件中包括了一个easywebwork的例子,我把jamon导入到这个例子工程中去,大家可以直接下载运行观看效果。Easywebwork是一个旨在减少webwork2.2.x系列的xml配置文件的项目,
|
《 优化程序之前,可用Jamon来监测你的Spring应用 》 的评论也很精彩,欢迎您也添加评论。查看详细 >>
推荐相关文章:
基于lucene的对数据库&文件夹检索(ss2,appfuse,jdon,nutch杂烩)
Spring AOP 概览与细节
JavaEye推荐
上海乐福狗信息技术有限公司:诚聘技术经理和开发工程师
免费下载IBM社区版软件--它基于开放的标准,支持广泛的开发类型,让您的开发高效自主!
京沪穗蓉四地免费注册,SOA技术高手汇聚交锋.
上海:优秀公司德比:高薪诚聘 资深Java工程师
广州:优易公司:诚聘Java工程师,开发经理
上海:尤恩斯国际集团:诚聘开发工程师
北京:优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA