一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 使用spring攔截器實現日志管理實例

使用spring攔截器實現日志管理實例

2020-08-26 10:17ctxsdhy Java教程

本篇文章主要介紹了使用spring攔截器實現日志管理實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

使用HandlerInterceptor攔截器,可以攔截請求,實現通用的日志管理操作

 一、添加攔截器類

在"src/main/java"代碼文件夾的"org.xs.demo1"的包下新建"LogInterceptor.java"類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package org.xs.demo1;
 
import java.text.SimpleDateFormat;
 
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;
 
/**
 
 * 日志攔截器
 
 * @author ThinkGem
 
 */
 
public class LogInterceptor implements HandlerInterceptor {
  private final Logger log = LoggerFactory.getLogger(getClass().getName());
 
  private static final ThreadLocal<Long> startTimeThreadLocal = new NamedThreadLocal<Long>("ThreadLocal StartTime");
  /**
 
   * 預處理
 
   */
 
  @Override
 
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
 
     
 
    long beginTime = System.currentTimeMillis(); //開始時間
 
    startTimeThreadLocal.set(beginTime); //線程綁定變量(該數據只有當前請求的線程可見)
 
    log.info("開始計時: {}", new SimpleDateFormat("hh:mm:ss.SSS").format(beginTime));
 
     
 
    return true;
 
  }
 
  /**
 
   * 返回處理
 
   */
 
  @Override
 
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
 
    if (modelAndView != null){
 
      log.info("ViewName: " + modelAndView.getViewName());
 
    }
 
  }
 
  /**
 
   * 后處理
 
   */
 
  @Override
 
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
 
    // 保存日志
 
    //LogUtils.saveLog(request, handler, ex, null);    
 
    // 輸出日志信息
 
    log.info("訪問地址:" + request.getRequestURI() + ",執行方式:" + request.getMethod());
 
    long beginTime = startTimeThreadLocal.get(); //得到線程綁定的局部變量(開始時間)
 
    long endTime = System.currentTimeMillis(); //結束時間
 
    log.info("計時結束:{}", new SimpleDateFormat("hh:mm:ss.SSS").format(endTime));
 
  }
}

二、修改配置文件

修改spring-mvc.xml件,加入:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- 攔截器配置 -->
 
<mvc:interceptors>
 
  <mvc:interceptor>
 
    <mvc:mapping path="/**" />
 
    <bean class="org.xs.demo1.LogInterceptor" />
 
  </mvc:interceptor>
 
</mvc:interceptors>

三、運行測試

訪問"http://localhost:8080/demo1/hello/list2"地址

使用spring攔截器實現日志管理實例

可以看到攔截器中輸出的日志信息了

實例代碼地址:spring-HandlerInterceptor.rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/ctxsdhy/p/6421067.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品免费观看老司机 | 国产激情久久久久影院小草 | 欧美一级h| 玩高中女同桌肉色短丝袜脚文 | 免费观看韩剧网站在线观看 | 俄罗斯美女破苞 | caopo视频进入离开 | 精品国产一区二区三区国产馆 | 日韩毛片基地一区二区三区 | 处女私拍 | 边吃胸边膜下刺激免费男对女 | 大学生宿舍飞机 free | 男女男在线精品网站免费观看 | 91欧洲在线视精品在亚洲 | 国产卡一卡二卡四卡无卡 | 免费特黄一级欧美大片 | 扒开老师两片湿漉的肉 | 大ji巴好好爽好深网站 | 青视频在线 | 亚洲欧美久久久久久久久久爽网站 | 北条麻妃一区 | 2012在线观看免费视频大全 | 色视频亚洲 | 99热这里有免费国产精品 | 羞羞在线观看 | 久久精品亚洲热综合一本 | 毛片免费全部免费观看 | 欧美艳星kagney1ynn | 91免费播放人人爽人人快乐 | 99热综合在线 | 国产成人手机在线 | 小SAO货叫大声点妓女 | 四虎影视884aa·com | 亚洲精品tv久久久久久久久久 | 毛茸茸的大逼 | 美女被视频网站 | 2018久久精品热在线观看 | 猫咪av | 日韩在线一区 | 精品久久久噜噜噜久久久app | 亚洲国产精品嫩草影院久久 |