SpringBoot全局異常與數(shù)據(jù)校驗(yàn)的方法
異常處理是每個(gè)項(xiàng)目中都繞不開(kāi)的話題,那么如何優(yōu)雅的處理異常,是本文的話題。本文將結(jié)合SpringBoot框架一起和大家探討下。
要思考的問(wèn)題
在現(xiàn)在的前后端交互中,通常都規(guī)范了接口返回方式,如返回的接口狀態(tài)(成功|失?。┮约耙祷氐臄?shù)據(jù)在那個(gè)字段取,或者說(shuō)失敗了以后提示信息從接口哪里返回,因此,如果想做全局異常,并且異常發(fā)生后能準(zhǔn)確的返回給前端解析,那么需要異常發(fā)生時(shí)返回給前端的格式與正常失敗場(chǎng)景的格式一致。
項(xiàng)目建立
利用idea 工具,很容易的搭建一個(gè)SpringBoot項(xiàng)目,要引入的maven依賴如下:
很簡(jiǎn)單,除了加入web功能還加入了我們需要用到的JSR-303校驗(yàn)框架。
定義成功失敗 返回碼
定義接口返回響應(yīng)實(shí)體
全局異常攔截和驗(yàn)證
定義自定義業(yè)務(wù)異常
編寫全局異??刂破鞑?duì)自定義異常做處理
編寫controller模擬拋出業(yè)務(wù)異常
postMan模擬請(qǐng)求接口,進(jìn)行驗(yàn)證
數(shù)據(jù)綁定異常處理
通常我們操作數(shù)據(jù)的時(shí)候,不僅前端需要進(jìn)行數(shù)據(jù)校驗(yàn),后端也應(yīng)當(dāng)進(jìn)行攔截和進(jìn)行相應(yīng)的錯(cuò)誤提示,
JSR-303校驗(yàn)框架也是我們的一種選擇。
編寫實(shí)體`User`,并對(duì)屬性進(jìn)行注解控制
全局異??刂祁惣尤霐r截
編寫控制器
postMan模擬請(qǐng)求
不填寫任何屬性,模擬添加操作,準(zhǔn)確進(jìn)行攔截和報(bào)錯(cuò)
代碼地址
代碼地址:https://github.com/pengziliu/spring-boot-2.0-leaning
項(xiàng)目結(jié)構(gòu)預(yù)覽:
結(jié)尾
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過(guò)程詳解
- SpringBoot2.X Kotlin系列之?dāng)?shù)據(jù)校驗(yàn)和異常處理詳解
- Springboot如何使用logback實(shí)現(xiàn)多環(huán)境配置?
- springboot yml中profiles的巧妙用法(小白必看多環(huán)境配置)
- springboot 多環(huán)境配置 yml文件版的實(shí)現(xiàn)方法
- springboot多環(huán)境配置方案(不用5分鐘)
- springboot學(xué)習(xí)筆記之 profile多環(huán)境配置切換的實(shí)現(xiàn)方式
- SpringBoot數(shù)據(jù)校驗(yàn)及多環(huán)境配置的問(wèn)題詳解
相關(guān)文章
使用Redis incr解決并發(fā)問(wèn)題的操作
這篇文章主要介紹了使用Redis incr解決并發(fā)問(wèn)題的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11SpringBoot整合RabbitMQ處理死信隊(duì)列和延遲隊(duì)列
這篇文章將通過(guò)示例為大家詳細(xì)介紹SpringBoot整合RabbitMQ時(shí)如何處理死信隊(duì)列和延遲隊(duì)列,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-05-05從0開(kāi)始學(xué)習(xí)大數(shù)據(jù)之java spark編程入門與項(xiàng)目實(shí)踐
這篇文章主要介紹了從0開(kāi)始學(xué)習(xí)大數(shù)據(jù)之java spark編程入門與項(xiàng)目實(shí)踐,結(jié)合具體入門項(xiàng)目分析了大數(shù)據(jù)java spark編程項(xiàng)目建立、調(diào)試、輸出等相關(guān)步驟及操作技巧,需要的朋友可以參考下2019-11-11Java的Struts框架中的if/else標(biāo)簽使用詳解
這篇文章主要介紹了Java的Struts框架中的if/else標(biāo)簽使用詳解,Struts是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下2015-12-12SpringBoot @ExceptionHandler與@ControllerAdvice異常處理詳解
在Spring Boot應(yīng)用的開(kāi)發(fā)中,不管是對(duì)底層數(shù)據(jù)庫(kù)操作,對(duì)業(yè)務(wù)層操作,還是對(duì)控制層操作,都會(huì)不可避免的遇到各種可預(yù)知的,不可預(yù)知的異常需要處理,如果每個(gè)處理過(guò)程都單獨(dú)處理異常,那么系統(tǒng)的代碼耦合度會(huì)很高,工作量大且不好統(tǒng)一,以后維護(hù)的工作量也很大2022-10-10spring中@RestController和@Controller的區(qū)別小結(jié)
@RestController和@Controller這兩個(gè)注解用于創(chuàng)建Web應(yīng)用程序的控制器類,那么這兩個(gè)注解有哪些區(qū)別,本文就來(lái)介紹一下,并用示例代碼說(shuō)明,感興趣的可以了解一下2023-09-09