SpringBoot全局異常與數(shù)據(jù)校驗(yàn)的方法
異常處理是每個(gè)項(xiàng)目中都繞不開的話題,那么如何優(yōu)雅的處理異常,是本文的話題。本文將結(jié)合SpringBoot框架一起和大家探討下。
要思考的問題
在現(xiàn)在的前后端交互中,通常都規(guī)范了接口返回方式,如返回的接口狀態(tài)(成功|失?。┮约耙祷氐臄?shù)據(jù)在那個(gè)字段取,或者說失敗了以后提示信息從接口哪里返回,因此,如果想做全局異常,并且異常發(fā)生后能準(zhǔn)確的返回給前端解析,那么需要異常發(fā)生時(shí)返回給前端的格式與正常失敗場景的格式一致。
項(xiàng)目建立
利用idea 工具,很容易的搭建一個(gè)SpringBoot項(xiàng)目,要引入的maven依賴如下:

很簡單,除了加入web功能還加入了我們需要用到的JSR-303校驗(yàn)框架。
定義成功失敗 返回碼
定義接口返回響應(yīng)實(shí)體
全局異常攔截和驗(yàn)證
定義自定義業(yè)務(wù)異常
編寫全局異??刂破鞑ψ远x異常做處理
編寫controller模擬拋出業(yè)務(wù)異常
postMan模擬請求接口,進(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`,并對屬性進(jìn)行注解控制
全局異??刂祁惣尤霐r截
編寫控制器

postMan模擬請求
不填寫任何屬性,模擬添加操作,準(zhǔn)確進(jìn)行攔截和報(bào)錯(cuò)
代碼地址
代碼地址:https://github.com/pengziliu/spring-boot-2.0-leaning
項(xiàng)目結(jié)構(gòu)預(yù)覽:
結(jié)尾
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過程詳解
- 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)境配置的問題詳解
相關(guān)文章
HashMap和List遍歷方法及如何遍歷刪除元素總結(jié)
在本篇文章中小編給大家分享了關(guān)于HashMap和List遍歷方法及如何遍歷刪除元素知識點(diǎn)總結(jié),需要的朋友們參考下。2019-05-05
SpringBoot定時(shí)任務(wù)動(dòng)態(tài)擴(kuò)展ScheduledTaskRegistrar詳解
這篇文章主要為大家介紹了SpringBoot定時(shí)任務(wù)動(dòng)態(tài)擴(kuò)展ScheduledTaskRegistrar類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Spring Cloud Ribbon實(shí)現(xiàn)客戶端負(fù)載均衡的方法
本篇文章主要介紹了Spring Cloud Ribbon實(shí)現(xiàn)客戶端負(fù)載均衡的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
Sharding-Proxy分庫分表和數(shù)據(jù)加密使用場景分析
這篇文章主要介紹了Sharding-Proxy分庫分表和數(shù)據(jù)加密使用經(jīng)驗(yàn)分享,通過場景模擬分析結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
完美解決springboot中使用mybatis字段不能進(jìn)行自動(dòng)映射的問題
今天在springboot中使用mybatis的時(shí)候不能字段不能夠進(jìn)行自動(dòng)映射,接下來給大家給帶來了完美解決springboot中使用mybatis字段不能進(jìn)行自動(dòng)映射的問題,需要的朋友可以參考下2023-05-05
java啟動(dòng)jar包修改JVM默認(rèn)內(nèi)存問題
這篇文章主要介紹了java啟動(dòng)jar包修改JVM默認(rèn)內(nèi)存問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
SpringBoot系列教程之dubbo和Zookeeper集成方法
這篇文章主要介紹了SpringBoot系列教程之dubbo和Zookeeper集成方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Spring Boot 整合 MyBatis 連接數(shù)據(jù)庫及常見問題
MyBatis 是一個(gè)優(yōu)秀的持久層框架,支持定制化 SQL、存儲(chǔ)過程以及高級映射,下面詳細(xì)介紹如何在 Spring Boot 項(xiàng)目中整合 MyBatis 并連接數(shù)據(jù)庫,感興趣的朋友一起看看吧2025-03-03

