Spring Boot 全域性日誌攔截處理

2021-10-05 12:44:47 字數 2035 閱讀 4833

一些系統經常需要關注使用者請求的具體資訊,如使用者資訊、請求引數、響應結果等等,在springboot應用中可通過註冊全域性請求***的方式統一處理。下面的案例將簡單實現列印請求和響應的相關資訊,具體可根據實際業務需要進行相應調整(注意方法盡量輕量化,防止加重系統處理每個請求的負擔),記錄下實現步驟。

實現handlerinterceptoradapterhandlerinterceptor介面的prehandleposthandle方法,分別對響應請求前和響應請求後做自定義的一些操作。完整**如下:

/**

* 全域性請求***

*/@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...