Springboot捕获全局异常:MethodArgumentNotValidException

1.控制器 方法上添加@Valid注解

@PostMapping("/update")@RequiresPermissions("user:update")public R update(@RequestBody @Valid UserEntity user) {userService.update(user);return R.ok();}

2.实体类

public class UserEntity implements Serializable {private static final long serialVersionUID = 1L;/*** 主键id*/@TableIdprivate Long userId;/*** 用户名*/private String username;/*** 年龄*/@Range(min = 18, max = 80, message = "年龄必须在 {min} 至 {max} 之间")private Integer age;
}

3.捕获全局异常类

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(value = MethodArgumentNotValidException.class)@ResponseBodypublic R exceptionHandler2(MethodArgumentNotValidException e) {StringBuilder sb = new StringBuilder();List<ObjectError> allErrors = e.getBindingResult().getAllErrors();String message = allErrors.stream().map(s -> s.getDefaultMessage()).collect(Collectors.joining(";"));return R.error(message);}
}

效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式开发工程师面试题 - 2024/11/24

原文嵌入式开发工程师面试题 - 2024/11/24 转载请注明来源 1.若有以下定义语句double a[8]&#xff0c;*pa&#xff1b;int i5&#xff1b;对数组元素错误的引用是&#xff1f; A *a B a[5] C *&#xff08;p1&#xff09; D p[8] 解析&#xff1a; 在 C 或 C 语言中&am…

C#面向对象,封装、继承、多态、委托与事件实例

一&#xff0e;面向对象封装性编程 创建一个控制台应用程序&#xff0c;要求&#xff1a; 1&#xff0e;定义一个服装类&#xff08;Cloth&#xff09;&#xff0c;具体要求如下 &#xff08;1&#xff09;包含3个字段&#xff1a;服装品牌&#xff08;mark&#xff09;,服装…

Neo4j图形数据库-Cypher中常用指令

一、创建与修改 1.1 create 创建图数据库中的节点、关系等元素&#xff1a; CREATE (:Person {name: "Alice", age: 30}) CREATE (p1:Person {name: "Bob"})-[r:KNOWS]->(p2:Person {name: "Charlie"})批量创建元素 CREATE (n1:Node),(n2…

跳表(Skip List)

跳表&#xff08;Skip List&#xff09; 跳表是一种用于快速查找、插入和删除的概率型数据结构&#xff0c;通常用于替代平衡二叉搜索树&#xff08;如 AVL 树或红黑树&#xff09;。跳表通过在有序链表的基础上增加多层索引&#xff0c;使得查找操作的平均时间复杂度降低&…

【springboot】读取外部的配置文件

【springboot】读取外部的配置文件 一、使用场景二、代码实现&#xff08;一&#xff09;application.yml 的配置&#xff08;二&#xff09;编辑 customer.yml&#xff08;三&#xff09;自定义方法读取外部配置文件&#xff08;四&#xff09;使用外部配置文件的配置 一、使用…

MySQL子查询介绍和where后的标量子查询

子查询介绍 出现在其他语句中的select语句&#xff0c;被包裹的select语句就是子查询或内查询 包裹子查询的外部的查询语句&#xff1a;称主查询语句 select last_name from employees where department_id in( select department_id from departments where location_id170…

【CLIP】2: semantic-text2image-search前后端调试

添加了详细的调试信息,包括当前处理的图片、向量化结果,以及插入到集合中的数据详情。调试信息可以帮助你在运行过程中清楚地了解数据的处理情况。调试建议 向量维度和内容:通过打印向量的长度和部分内容,可以检查向量化过程是否正常。处理失败时的日志:捕获异常时记录具体…

小米C++ 面试题及参考答案下(120道面试题覆盖各种类型八股文)

指针和引用的区别?怎么实现的? 指针和引用有以下一些主要区别。 从概念上来说,指针是一个变量,它存储的是另一个变量的地址。可以通过指针来间接访问所指向的变量。例如,我们定义一个整型指针int *p;,它可以指向一个整型变量的内存地址。而引用是一个别名,它必须在定义的…

牛客题库 21738 牛牛与数组

牛牛与数组题目链接 题目大意 牛牛喜欢这样的数组: 1:长度为n 2:每一个数都在1到k之间 3:对于任意连续的两个数A,B,A<=B 与(A % B != 0) 两个条件至少成立一个请问一共有多少满足条件的数组,对 1 e 9 + 7 1e^9+7 1e9+7 取模 输入格式 输入两个整数 n , k n,k n,…

从 Mac 远程控制 Windows:一站式配置与实践指南20241123

引言&#xff1a;跨平台操作的需求与挑战 随着办公场景的多样化&#xff0c;跨平台操作成为现代开发者和 IT 人员的刚需。从 Mac 系统远程控制 Windows&#xff0c;尤其是在同一局域网下&#xff0c;是一种高效解决方案。不仅能够灵活管理资源&#xff0c;还可以通过命令行简化…

Vue 3 Teleport 教程

Vue 3 Teleport 教程 1. Teleport 是什么&#xff1f; Teleport 是 Vue 3 中引入的一个强大组件&#xff0c;它允许你将组件的一部分渲染到文档中的其他位置&#xff0c;而不受原始组件嵌套层级的限制。这个特性特别适合处理模态框、弹窗、通知等需要脱离普通文档流的场景。 …

解锁 Vue 项目中 TSX 配置与应用简单攻略

在 Vue 项目中配置 TSX 写法 在 Vue 项目中使用 TSX 可以为我们带来更灵活、高效的开发体验&#xff0c;特别是在处理复杂组件逻辑和动态渲染时。以下是详细的配置步骤&#xff1a; 一、安装相关依赖 首先&#xff0c;我们需要在命令行中输入以下命令来安装 vitejs/plugin-v…

【WEB开发.js】getElementById :通过元素id属性获取HTML元素

getElementById 是 JavaScript 中常用的一个 DOM 方法&#xff0c;用于通过元素的 id 属性获取文档中对应的 HTML 元素。这个方法返回的是一个包含该元素的引用&#xff0c;如果没有找到指定的元素&#xff0c;则返回 null。 语法&#xff1a; document.getElementById(id);i…

游戏引擎学习第22天

移除 DllMain() 并成功重新编译 以下是对内容的详细复述与总结&#xff1a; 问题和解决方案&#xff1a; 在编译过程中遇到了一些问题&#xff0c;特别是如何告知编译器不要退出程序&#xff0c;而是继续处理。问题的根源在于编译过程中传递给链接器的参数设置不正确。原本尝试…

【C#设计模式(15)——命令模式(Command Pattern)】

前言 命令模式的关键通过将请求封装成一个对象&#xff0c;使命令的发送者和接收者解耦。这种方式能更方便地添加新的命令&#xff0c;如执行命令的排队、延迟、撤销和重做等操作。 代码 #region 基础的命令模式 //命令&#xff08;抽象类&#xff09; public abstract class …

命令行版 postman 之 post 小工具

依赖 curljq post.sh #!/bin/bashBASEhttp://119.119.119.119 METHOD$1 URL$BASE/$2 LOGIN$BASE/login echo $URL token$(curl --silent $LOGIN -H Accept: application/json, text/plain, */* -H Accept-Language: zh-CN,zh;q0.9 -H Connection: keep-alive -H Con…

QT6学习第四天 感受QT的文件编译

QT6学习第四天 感受QT的文件编译 使用纯代码编写程序新建工程 使用其他编辑器纯代码编写程序并在命令行运行使用 .ui 表单文件生成界面使用自定义 C 窗口类使用现成的QT Designer界面类 使用纯代码编写程序 我们知道QT Creator中可以用拖拽的方式在 .ui 文件上布局&#xff0c…

【SpringBoot】28 API接口防刷(Redis + 拦截器)

Gitee仓库 https://gitee.com/Lin_DH/system 介绍 常用的 API 安全措施包括&#xff1a;防火墙、验证码、鉴权、IP限制、数据加密、限流、监控、网关等&#xff0c;以确保接口的安全性。 常见措施 1&#xff09;防火墙 防火墙是网络安全中最基本的安全设备之一&#xff0c…

Android Audio实战——音频多声道混音适配(八)

上一篇文章我们修改了在 Android 11 中适配 7.1.4 声道的相关常量定义及部分代码,这里我们来看一下另外两个部分重要逻辑的修改及优化。 在音频处理过程中,经常需要将不同采样率的音频统一到相同的采样率,以便进行进一步处理。而在 AudioMixer 中,很可能会使用 AudioResamp…

4——单页面应用程序,vue-cli脚手架

单页面应用程序(英文名:Single Page Application)简称 SPA,顾名 思义,指的是一个 Web 网站中只有唯一的一个 HTML 页面,所有的功能与交互都在这唯一的一个页面内完成。 1、脚手架 ① 什么是脚手架 vue-cli 是 Vue.js 开发的标准工具&#xff61;它简化了程序员基于 webpack …