一些系統經常需要關注使用者請求的具體資訊,如使用者資訊、請求引數、響應結果等等,在springboot應用中可通過註冊全域性請求***的方式統一處理。下面的案例將簡單實現列印請求和響應的相關資訊,具體可根據實際業務需要進行相應調整(注意方法盡量輕量化,防止加重系統處理每個請求的負擔),記錄下實現步驟。
實現handlerinterceptoradapter
或handlerinterceptor
介面的prehandle
和posthandle
方法,分別對響應請求前和響應請求後做自定義的一些操作。完整**如下:
/**
* 全域性請求***
*/@component
public
class
globalrequestinterceptor
extends
handlerinterceptoradapter
else
logger.
info
("*****> user({}) request({}) start, params:{}"
, username, request.
getrequesturi()
, jsonobject.
tojsonstring
(request.
getparametermap()
));return
super
.prehandle
(request, response, handler);}
/** * 請求完成之後,如果需要渲染檢視,則此操作在渲染檢視之前
}
注意,在未開啟enablewebmvc
註解的情況下,自定義***和springmvc預設自動配置是同時生效的
//@enablewebmvc //需要全面接管springboot中的springmvc配置時開啟此註解,開啟後springmvc自動配置失效。
@configuration
public
class
webconfig
implements
webmvcconfigurer
}
對比登入前後日誌列印區別,主要是使用者資訊。
未登入前訪問查詢redis的請求,控制台列印資訊如下,此時無登入使用者,springboot框架預設的使用者資訊為匿名使用者,如下圖:
這方面具體實現**可參考之前的文章登入後重新執行查詢redis的請求。控制台列印資訊中包含了使用者資訊,如下圖:
SpringBoot 全域性異常攔截和日誌配置
作用 springboot中不用關心異常,不用顯示的進行try catch,美觀,正解 擴充套件 可以加到類上,也可以加到類的方法上 關於 的幾點說明 中的 data註解是應用了lombok,需要的話匯入下,也可以刪除註解,自己生成get set和構造方法 json格式化工具用的是fastjson ...
全域性異常處理 springBoot 全域性異常處理
先讚後看,月入百萬 springboot開發的web專案中,強調分層的概念,乙個完整的專案一般會劃分出controller層和service層。因此,為了 的可維護性,controller層 應該盡量簡潔,驗證一下引數,直接丟給service層處理即可 異常處理的方式無外乎兩種 在springboo...
springboot全域性異常捕獲
新專案中需要用到檔案上傳,有需要對上傳檔案大小進行限制,當檔案超過限制的時候,springboot框架會直接丟擲異常,不會進入你的方法中,當我們需要向前臺返回資訊的時候也無從返回,只能進行全域性捕獲檔案過大的異常,然後再返回資訊。controlleradvice public class mycon...