「SpringBoot專題」統一異常處理和統一數據返回

在實際開發中,我們希望對接口結果的返回,進行一次統一的封裝,即便接口發生異常。比如,我們可以這樣設計接口的返回:

「SpringBoot專題」統一異常處理和統一數據返回

統一數據返回

我們希望有一種統一的方式來處理異常,並且有一種統一的方式來對接口結果進行返回,並且儘可能少編寫代碼,儘可能和業務邏輯的處理分離開來。

實踐

第一步:定義通用的數據返回對象

「SpringBoot專題」統一異常處理和統一數據返回

GlobalResponse

這裡我們定義通用的數據返回對象,並且提供一個正常數據返回/一個異常數據返回的快速設置方法。

第二步:定義統一處理handler

「SpringBoot專題」統一異常處理和統一數據返回

GlobalResponseHandler

「SpringBoot專題」統一異常處理和統一數據返回

@ControllerAdvice+@ExceptionHandler配合使用

首先,我們通過@ControllerAdvice來定義一個controller增強處理器,可以通過配合使用@ExceptionHandler來進行異常的統一處理。

其次,通過實現ResponseBodyAdvice,對於數據的返回,進行進一步的處理,使得接口的返回值都是統一的對象。

「SpringBoot專題」統一異常處理和統一數據返回

業務異常

運行結果

「SpringBoot專題」統一異常處理和統一數據返回

接口正常返回

「SpringBoot專題」統一異常處理和統一數據返回

正常返回的數據被統一包裝

「SpringBoot專題」統一異常處理和統一數據返回

接口異常

「SpringBoot專題」統一異常處理和統一數據返回

異常返回

好了,到這裡,咱們對springboot中的異常處理以及統一接口數據返回就有了一個認識~

加Java架構師進階交流群獲取Java工程化、高性能及分佈式、高性能、深入淺出。高架構。性能調優、Spring,MyBatis,Netty源碼分析和大數據等多個知識點高級進階乾貨的直播免費學習權限 都是大牛帶飛 讓你少走很多的彎路的 群.號是 338549832 對了 小白勿進 最好是有開發經驗

注:加群要求

1、具有工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加。

3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加。

5.阿里Java高級大牛直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!


分享到:


相關文章: