SpringBoot全局异常与数据校验的方法

作者:Java填坑之路 时间:2023-12-11 10:46:06 

异常处理是每个项目中都绕不开的话题,那么如何优雅的处理异常,是本文的话题。本文将结合SpringBoot框架一起和大家探讨下。

要思考的问题

在现在的前后端交互中,通常都规范了接口返回方式,如返回的接口状态(成功|失败)以及要返回的数据在那个字段取,或者说失败了以后提示信息从接口哪里返回,因此,如果想做全局异常,并且异常发生后能准确的返回给前端解析,那么需要异常发生时返回给前端的格式与正常失败场景的格式一致。

项目建立

利用idea 工具,很容易的搭建一个SpringBoot项目,要引入的maven依赖如下:

SpringBoot全局异常与数据校验的方法

很简单,除了加入web功能还加入了我们需要用到的JSR-303校验框架。

定义成功失败 返回码

SpringBoot全局异常与数据校验的方法 

定义接口返回响应实体

SpringBoot全局异常与数据校验的方法 

全局异常拦截和验证

定义自定义业务异常

SpringBoot全局异常与数据校验的方法 

编写全局异常控制器并对自定义异常做处理

SpringBoot全局异常与数据校验的方法 

编写controller模拟抛出业务异常

SpringBoot全局异常与数据校验的方法 

postMan模拟请求接口,进行验证

SpringBoot全局异常与数据校验的方法

数据绑定异常处理

通常我们操作数据的时候,不仅前端需要进行数据校验,后端也应当进行拦截和进行相应的错误提示,

JSR-303校验框架也是我们的一种选择。

编写实体`User`,并对属性进行注解控制

SpringBoot全局异常与数据校验的方法 

全局异常控制类加入拦截

SpringBoot全局异常与数据校验的方法 

编写控制器

SpringBoot全局异常与数据校验的方法

 postMan模拟请求

不填写任何属性,模拟添加操作,准确进行拦截和报错

SpringBoot全局异常与数据校验的方法 

代码地址

代码地址:https://github.com/pengziliu/spring-boot-2.0-leaning

项目结构预览:

SpringBoot全局异常与数据校验的方法 

结尾

来源:http://www.jianshu.com/p/99ded527bc47

标签:Spring,Boot,全局异常,数据校验
0
投稿

猜你喜欢

  • 详解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
  • JavaWeb利用struts实现文件下载时改变文件名称

    2023-10-24 11:26:53
  • 基于Java生成图片验证码的方法解析

    2022-01-22 06:00:37
  • 解决Springboot项目启动后自动创建多表关联的数据库与表的方案

    2023-11-24 01:11:27
  • Springboot JPA 枚举Enum类型存入到数据库的操作

    2023-11-25 16:11:40
  • Android自定义带动画的半圆环型进度效果

    2022-02-08 09:31:15
  • Spring使用注解存储和读取对象详解

    2022-06-10 00:35:24
  • 亲自教你实现栈及C#中Stack源码分析

    2021-05-23 19:39:10
  • C#实现将DataTable内容输出到Excel表格的方法

    2023-05-01 15:20:38
  • springboot+zookeeper实现分布式锁的示例代码

    2022-02-05 08:48:48
  • 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
  • Unity3D使用Shader实现腐蚀消失

    2022-01-07 20:57:59
  • C# Chart控件标记问题详解

    2023-01-23 03:37:35
  • IDEA中的clean,清除项目缓存图文教程

    2022-02-05 09:02:02
  • 使用IntelliJ IDEA 15和Maven创建Java Web项目(图文)

    2023-08-26 07:10:15
  • asp之家 软件编程 m.aspxhome.com