spring boot通過配置springMVC攔截器
配置攔截器比較簡單, spring boot配置攔截器, 重寫preHandle方法.
1.配置攔截器:
2重寫方法
這樣就實現了攔截器.
其中,在重寫方法的邏輯中, 增加了一個注解, 這個注解的作用是:當方法頭加上這個注解之后, 攔截器直接放行
這里說一下3個方法:
preHandle:預處理回調方法,實現處理器的預處理, 有返回值, true表示繼續流程, false表示中斷流程,通過response產生響應
postHandle:后處理回調方法,實現處理器的后處理
afterCompletion:整個請求處理完成回調方法
在方法頭增加注解
這樣有一些對安全沒必要太嚴格, 不需要校驗token的接口就加上這個注解就可以.
接下來 WebMvcConfigurationSupport 配置靜態資源
還有個addViewControllers的方法可以配置視圖
攔截器的實現還有一種方式: WebRequestInterceptor, 這里說下他們的不同點, 具體的代碼實現都差不多
WebRequestInterceptor 的 preHandle 沒有返回值, 方法參數中沒有response, 獲取request更方便, 不影響后續流程, . 也就是說WebRequestInterceptor 更針對處理請求, 比如預設參數等.
HandlerInterceptor 的 preHandle 有返回值, 會影響到后續處理, 有response, 獲取request相對會稍微多寫點代碼, 更注重業務處理, 比如12306可以判斷是否售票時間內, 權限, 請求驗簽等等.
例如本文的業務是校驗token, 登錄權限
整體來說HandlerInterceptor的功能更強大, 但獲取request相對代碼會多點