前言
《【SpringBoot專題】多環(huán)境配置及swagger》
在實際開發(fā)中妥衣,我們希望對接口結(jié)果的返回,進行一次統(tǒng)一的封裝说庭,即便接口發(fā)生異常樱溉。比如,我們可以這樣設(shè)計接口的返回:
統(tǒng)一數(shù)據(jù)返回
我們希望有一種統(tǒng)一的方式來處理異常,并且有一種統(tǒng)一的方式來對接口結(jié)果進行返回捐寥,并且盡可能少編寫代碼笤昨,盡可能和業(yè)務(wù)邏輯的處理分離開來。
實踐
第一步:定義通用的數(shù)據(jù)返回對象
GlobalResponse
這里我們定義通用的數(shù)據(jù)返回對象握恳,并且提供一個正常數(shù)據(jù)返回/一個異常數(shù)據(jù)返回的快速設(shè)置方法瞒窒。
第二步:定義統(tǒng)一處理handler
GlobalResponseHandler
@ControllerAdvice+@ExceptionHandler配合使用
首先,我們通過@ControllerAdvice來定義一個controller增強處理器乡洼,可以通過配合使用@ExceptionHandler來進行異常的統(tǒng)一處理崇裁。
其次,通過實現(xiàn)ResponseBodyAdvice束昵,對于數(shù)據(jù)的返回拔稳,進行進一步的處理,使得接口的返回值都是統(tǒng)一的對象锹雏。
業(yè)務(wù)異常
運行結(jié)果
接口正常返回
正常返回的數(shù)據(jù)被統(tǒng)一包裝
接口異常
異常返回
好了巴比,到這里,咱們對springboot中的異常處理以及統(tǒng)一接口數(shù)據(jù)返回就有了一個認(rèn)識~
周末愉快~
create by zhangfengzhe
2018.09.02