SpringBoot全局异常与数据校验的方法
作者:Java填坑之路 时间:2023-12-11 10:46:06
异常处理是每个项目中都绕不开的话题,那么如何优雅的处理异常,是本文的话题。本文将结合SpringBoot框架一起和大家探讨下。
要思考的问题
在现在的前后端交互中,通常都规范了接口返回方式,如返回的接口状态(成功|失败)以及要返回的数据在那个字段取,或者说失败了以后提示信息从接口哪里返回,因此,如果想做全局异常,并且异常发生后能准确的返回给前端解析,那么需要异常发生时返回给前端的格式与正常失败场景的格式一致。
项目建立
利用idea 工具,很容易的搭建一个SpringBoot项目,要引入的maven依赖如下:
很简单,除了加入web功能还加入了我们需要用到的JSR-303校验框架。
定义成功失败 返回码
定义接口返回响应实体
全局异常拦截和验证
定义自定义业务异常
编写全局异常控制器并对自定义异常做处理
编写controller模拟抛出业务异常
postMan模拟请求接口,进行验证
数据绑定异常处理
通常我们操作数据的时候,不仅前端需要进行数据校验,后端也应当进行拦截和进行相应的错误提示,
JSR-303校验框架也是我们的一种选择。
编写实体`User`,并对属性进行注解控制
全局异常控制类加入拦截
编写控制器
postMan模拟请求
不填写任何属性,模拟添加操作,准确进行拦截和报错
代码地址
代码地址:https://github.com/pengziliu/spring-boot-2.0-leaning
项目结构预览:
结尾
来源:http://www.jianshu.com/p/99ded527bc47
标签:Spring,Boot,全局异常,数据校验
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
详解Java如何进行Base64的编码(Encode)与解码(Decode)
2023-01-31 18:53:34
Android中控件GridView实现设置行列分割线的方法示例
2021-05-24 09:08:48
一文搞懂C++中的运算符重载
2021-08-02 02:47:53
![](https://img.aspxhome.com/file/2023/0/120800_0s.png)
JavaWeb利用struts实现文件下载时改变文件名称
2023-10-24 11:26:53
![](https://img.aspxhome.com/file/2023/1/71621_0s.jpg)
基于Java生成图片验证码的方法解析
2022-01-22 06:00:37
![](https://img.aspxhome.com/file/2023/5/125335_0s.png)
解决Springboot项目启动后自动创建多表关联的数据库与表的方案
2023-11-24 01:11:27
![](https://img.aspxhome.com/file/2023/9/59719_0s.jpg)
Springboot JPA 枚举Enum类型存入到数据库的操作
2023-11-25 16:11:40
![](https://img.aspxhome.com/file/2023/4/60064_0s.jpg)
Android自定义带动画的半圆环型进度效果
2022-02-08 09:31:15
Spring使用注解存储和读取对象详解
2022-06-10 00:35:24
![](https://img.aspxhome.com/file/2023/5/89485_0s.png)
亲自教你实现栈及C#中Stack源码分析
2021-05-23 19:39:10
![](https://img.aspxhome.com/file/2023/4/79054_0s.jpg)
C#实现将DataTable内容输出到Excel表格的方法
2023-05-01 15:20:38
![](https://img.aspxhome.com/file/2023/4/68084_0s.png)
springboot+zookeeper实现分布式锁的示例代码
2022-02-05 08:48:48
![](https://img.aspxhome.com/file/2023/9/85469_0s.jpg)
C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法
2022-02-12 23:04:39
@valid 无法触发BindingResult的解决
2023-08-10 09:16:12
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2022-06-10 04:17:53
区分Java中的ArrayList和LinkedList
2021-05-26 11:09:55
![](https://img.aspxhome.com/file/2023/7/129947_0s.png)
Unity3D使用Shader实现腐蚀消失
2022-01-07 20:57:59
![](https://img.aspxhome.com/file/2023/1/89751_0s.gif)
C# Chart控件标记问题详解
2023-01-23 03:37:35
![](https://img.aspxhome.com/file/2023/7/119557_0s.webp)
IDEA中的clean,清除项目缓存图文教程
2022-02-05 09:02:02
![](https://img.aspxhome.com/file/2023/1/75431_0s.jpg)
使用IntelliJ IDEA 15和Maven创建Java Web项目(图文)
2023-08-26 07:10:15
![](https://img.aspxhome.com/file/2023/1/101941_0s.png)