小編給大家分享一下Spring中StopWatch怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、溫縣網(wǎng)站維護、網(wǎng)站推廣。
StopWatch簡單的秒表,允許多個任務(wù)的計時,暴露每個命名任務(wù)的總運行時間和運行時間。隱藏使用System.currentTimeMillis(),提高應(yīng)用程序代碼的可讀性并減少計算錯誤的可能性。
以下演示使用StopWatch記錄請求摘要日志信息:
@Slf4jpublic class PerformanceInteceptor implements HandlerInterceptor { private ThreadLocalstopWatchThreadLocal = new ThreadLocal<>(); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { StopWatch sw = new StopWatch(); stopWatchThreadLocal.set(sw); sw.start(); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { stopWatchThreadLocal.get().stop(); stopWatchThreadLocal.get().start(); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { StopWatch sw = stopWatchThreadLocal.get(); sw.stop(); String method = handler.getClass().getSimpleName(); if (handler instanceof HandlerMethod) { String beanType = ((HandlerMethod) handler).getBeanType().getName(); String methodName = ((HandlerMethod) handler).getMethod().getName(); method = beanType + "." + methodName; } // sw.getTotalTimeMillis(), 總執(zhí)行時間 //sw.getTotalTimeMillis() - sw.getLastTaskTimeMillis(), 執(zhí)行方法體所需要的時間 log.info("{};{};{};{};{}ms;{}ms;{}ms", request.getRequestURI(), method, response.getStatus(), ex == null ? "-" : ex.getClass().getSimpleName(), sw.getTotalTimeMillis(), sw.getTotalTimeMillis() - sw.getLastTaskTimeMillis(), sw.getLastTaskTimeMillis()); stopWatchThreadLocal.remove(); }}
以上是“Spring中StopWatch怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!