【SpringBoot專題】統(tǒng)一異常處理和統(tǒng)一數(shù)據(jù)返回

前言

《【SpringBoot專題】快速體驗(yàn)》

《【SpringBoot專題】多環(huán)境配置及swagger》

《【SpringBoot專題】Java平臺下日志的那些事》

在實(shí)際開發(fā)中,我們希望對接口結(jié)果的返回,進(jìn)行一次統(tǒng)一的封裝,即便接口發(fā)生異常。比如,我們可以這樣設(shè)計(jì)接口的返回:

統(tǒng)一數(shù)據(jù)返回

我們希望有一種統(tǒng)一的方式來處理異常,并且有一種統(tǒng)一的方式來對接口結(jié)果進(jìn)行返回,并且盡可能少編寫代碼,盡可能和業(yè)務(wù)邏輯的處理分離開來。


實(shí)踐

第一步:定義通用的數(shù)據(jù)返回對象

GlobalResponse

這里我們定義通用的數(shù)據(jù)返回對象,并且提供一個(gè)正常數(shù)據(jù)返回/一個(gè)異常數(shù)據(jù)返回的快速設(shè)置方法。

第二步:定義統(tǒng)一處理handler

GlobalResponseHandler
@ControllerAdvice+@ExceptionHandler配合使用

首先,我們通過@ControllerAdvice來定義一個(gè)controller增強(qiáng)處理器,可以通過配合使用@ExceptionHandler來進(jìn)行異常的統(tǒng)一處理。

其次,通過實(shí)現(xiàn)ResponseBodyAdvice,對于數(shù)據(jù)的返回,進(jìn)行進(jìn)一步的處理,使得接口的返回值都是統(tǒng)一的對象。

業(yè)務(wù)異常


運(yùn)行結(jié)果

接口正常返回
正常返回的數(shù)據(jù)被統(tǒng)一包裝
接口異常
異常返回


好了,到這里,咱們對springboot中的異常處理以及統(tǒng)一接口數(shù)據(jù)返回就有了一個(gè)認(rèn)識~

周末愉快~

create by zhangfengzhe

2018.09.02

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容