SpringMVCInterceptor实现性能监控的功能代码-创新互联

利用Spring MVC 的 Interceptor 实现个简易的性能监控,计算一下每个url的执行时间。

霸州网站建设公司创新互联公司,霸州网站设计制作,有大型网站制作公司丰富经验。已为霸州上千提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的霸州做网站的公司定做!

在 preHandle 方法中记录当前的时间戳到线程局部变量里,然后在afterCompletion方法中,用当前的时间戳剪掉线程局部变量里的时间戳得出个运行时间,并记录到log里。

这只是个简易的性能监控,如果想长期正式的监控性能,请选择其它成熟的产品。

Interceptor

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.NamedThreadLocal;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
 
 
public class PerformanceInterceptor implements HandlerInterceptor {
 
  private final static Logger LOGGER = LoggerFactory.getLogger(PerformanceInterceptor.class);
 
  private NamedThreadLocal startTimeThreadLocal = new NamedThreadLocal("performance");
 
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
      throws Exception {
    startTimeThreadLocal.set(System.currentTimeMillis());
    return true;
  }
 
  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
      ModelAndView modelAndView) throws Exception {
    return;
  }
 
  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
      throws Exception {
    long currentTime = System.currentTimeMillis();
    long executeTime = currentTime - startTimeThreadLocal.get();
    LOGGER.info("uri:{} 执行了 {} 毫秒", request.getRequestURI(), executeTime);
  }
 
}

分享标题:SpringMVCInterceptor实现性能监控的功能代码-创新互联
新闻来源:http://bzwzjz.com/article/dsehgs.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: LED网站设计方案 成都网站建设公司 网站设计制作 网站建设方案 专业网站建设 成都网站制作 成都定制网站建设 外贸网站设计方案 营销型网站建设 定制级高端网站建设 成都网站建设 成都网站制作 网站制作 成都网站设计 定制网站设计 公司网站建设 网站设计公司 营销型网站建设 成都网站设计公司 达州网站设计 成都网站制作 成都网站制作