前言
《【SpringBoot專題】多環(huán)境配置及swagger》
在實(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