当前位置: 首页 > news >正文

@Validated注解不生效问题汇总

@Validated注解不生效问题汇总

文章目录

  • @Validated注解不生效问题汇总
    • 背景:
    • 一:可能原因
      • 原因1:
      • 原因2:
      • 原因3:
      • 原因4:
    • 二:补充全局异常对validation的处理

背景:

项目框架应用的是validation进行检验的,但是最近一直不生效,然后排查了下问题,总结了失效的常见几个原因:

一:可能原因

原因1:

在2.3.0版本之前spring-boot-starter-web是集成了validation检验的 但是在2.3.0开始就去掉了该依赖,所以需要自己添加该依赖。

添加依赖为:

       <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId><version>3.0.2</version></dependency>

原因2:

参数如果是非对象格式,需要在controller类上面添加@Validated注解

image-20230213111337727

原因3:

参数如果是对象的话,属性的前面的需要添加 @Valid注解

image-20230213112536348

原因4:

如果是嵌套对象的话,里面的对象还要添加 @Valid注解,截图如下:

image-20230213112604322

image-20230213112631498

这里要注意,如果是集合对象,同样需要添加@Valid注解,不然不生效的

image-20230213112649877

二:补充全局异常对validation的处理

/*** 处理 @Validated 异常信息** @param req* @param e* @return*/
@ExceptionHandler
public BaseResponse methodArgumentNotValidExceptionHandler(HttpServletRequest req, MethodArgumentNotValidException e) {log.warn("Url:{},Method:{} .\nController called error!Catch in ErrorHandler", req.getRequestURI(),req.getMethod(), e);String message = "";try {message = e.getMessage().substring(e.getMessage().lastIndexOf("[") + 1, e.getMessage().lastIndexOf("]") - 1);} catch (Exception ex) {log.error("@Validated截取异常信息失效,已重置,所有异常信息为:{}", e.getMessage());message = ErrorCodeEnum.PARAMETER_FORMAT_ERROR.getMessage();}return BaseResponse.error(ErrorCodeEnum.PARAMETER_FORMAT_ERROR.getCode(), message);
}

相关文章:

@Validated注解不生效问题汇总

Validated注解不生效问题汇总 文章目录Validated注解不生效问题汇总背景&#xff1a;一&#xff1a;可能原因原因1&#xff1a;原因2&#xff1a;原因3&#xff1a;原因4&#xff1a;二&#xff1a;补充全局异常对validation的处理背景&#xff1a; 项目框架应用的是validatio…...

华科万维C++章节练习2_4

题目&#xff1a;编写程序&#xff0c;从键盘输入一个字符&#xff0c;然后在屏幕上输出该字符开头的连续3个字符以及对应ASCII码。 输出格式请参看&#xff1a; 请输入一个字符>>A 字符 ASCII码 A 65 B 66 C 67 请按任意键继续. . . 请直接…...

17万字数字化医院信息化建设大数据平台建设方案WORD

【版权声明】本资料来源网络&#xff0c;知识分享&#xff0c;仅供个人学习&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间删除&#xff01;完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 目录 第1章 医院信息化概述 1.…...

Android 11系统签名修改

Android OS 映像在两个地方使用加密签名&#xff1a;映像中的所有 .apk 文件都必须经过签名。Android 软件包管理器通过下列两种方式使用 .apk 签名&#xff1a;更换应用时&#xff0c;必须使用与旧应用相同的密钥对其签名&#xff0c;才能存取旧应用的数据。无论是通过覆盖 .a…...

亚马逊、沃尔玛卖家自养号退款经验和测评技术

今天给大家介绍下在做亚马逊、沃尔玛退款自养号中的经验&#xff0c;众所周知&#xff0c;自养号最重要的是养号的环境&#xff0c;包括系统的纯净度&#xff0c;下单的信用卡以及其他的一些细节。 环境系统市面上有很多&#xff0c;鱼龙混杂&#xff0c;比如什么lumi&#xf…...

Spring Security in Action 第十一章 SpringSecurity前后端分离实战

本专栏将从基础开始&#xff0c;循序渐进&#xff0c;以实战为线索&#xff0c;逐步深入SpringSecurity相关知识相关知识&#xff0c;打造完整的SpringSecurity学习步骤&#xff0c;提升工程化编码能力和思维能力&#xff0c;写出高质量代码。希望大家都能够从中有所收获&#…...

高级前端二面vue面试题(持续更新中)

action 与 mutation 的区别 mutation 是同步更新&#xff0c; $watch 严格模式下会报错 action 是异步操作&#xff0c;可以获取数据后调用 mutation 提交最终数据 MVVM的优缺点? 优点: 分离视图&#xff08;View&#xff09;和模型&#xff08;Model&#xff09;&#xff…...

七大设计原则之依赖倒置原则应用

目录1 依赖倒置原则2 依赖倒置应用1 依赖倒置原则 依赖倒置原则&#xff08;Dependence Inversion Principle,DIP&#xff09;是指设计代码结构时&#xff0c;高层模块不应该依赖底层模块&#xff0c;二者都应该依赖其抽象。抽象不应该依赖细节&#xff1b;细节应该依赖抽象。…...

Dubbo面试题2023

1、为什么要用Dubbo 随着服务化的进一步发展&#xff0c;服务越来越多&#xff0c;服务之间的调用和依赖关系也越来越复杂&#xff0c;诞生了面向服务 的架构体系(SOA)&#xff0c;也因此衍生出了一系列相应的技术&#xff0c;如对服务提供、服务调用、连接处理、通信协议、 …...

Swift(5)

目录 集合类型 数组 ​编辑 合集 合集操作 字典 Where 集合类型 Swift提供了三种主要的集合类型&#xff1a;组合&#xff0c;合集&#xff0c;字典。 数组是有序的值的集合。 合集是唯一值的无序集合。 字典是无序的键值对集合。 数组 Swift数组的类型的完整写法是…...

[Java 进阶面试题] CAS 和 Synchronized 优化过程

最有用的东西,是你手里的钱,有钱就有底气,还不快去挣钱~ 文章目录CAS 和 Synchronized 优化过程1. CAS1.1 CAS的原理1.2 CAS实现自增自减的原子性1.3 CAS实现自旋锁1.4 CAS针对ABA问题的优化2. synchronized2.1 synchronized加锁阶段分析2.2 synchronized优化CAS 和 Synchroniz…...

算法思想 - 贪心算法

本文主要介绍算法中贪心算法的思想: 保证每次操作都是局部最优的&#xff0c;并且最后得到的结果是全局最优的。贪心思想相关题目分配饼干455. Assign Cookies (Easy)Input: [1,2], [1,2,3] Output: 2Explanation: You have 2 children and 3 cookies. The greed factors of 2 …...

解决需求变更难题的8大方案

需求变更8大原因为什么会出现需求变更&#xff0c;这是由于需求约束、规则有了新的变化、由于政策发生变化&#xff0c;客户、沟通方式、流程化、标准化的问题等导致。这里在在过去的项目经验中&#xff0c;提出了常见的8大需求变更的原因。政策发生变化&#xff1a;指由于国家…...

NSSROUND#8[Basic]

文章目录一、[NSSRound#8 Basic]MyDoor二、[NSSRound#8 Basic]Upload_gogoggo三、[NSSRound#8 Basic]MyPage四、[NSSRound#8 Basic]ez_node一、[NSSRound#8 Basic]MyDoor <?php error_reporting(0);if (isset($_GET[N_S.S])) {eval($_GET[N_S.S]); }if(!isset($_GET[file])…...

Vue3代码初体验找不同

文章目录&#x1f31f; 写在前面&#x1f31f; 代码分析&#x1f31f; 写在最后&#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更新 Vue3 的相关技术文章&#xff0c;Vue 框架目前的地位大家应该都晓…...

opencv调取摄像头录制

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

html标签手册

完整的HTML页面&#x1f4d1; ①基础标签&#x1f4d1;&#x1f4d1;&#x1f4d1; HTML <!DOCTYPE> 声明 !DOCTYPE声明必须是 HTML 文档的第一行&#xff0c;位于 html标签之前。 !DOCTYPE 声明不是 HTML 标签&#xff1b;它是指示 web 浏览器关于页面使用哪个 HTML 版…...

SpringMVC--视图、RESTful案例、处理AJAX请求

SpringMVC的视图 SpringMVC中的视图是View接口&#xff0c;视图的作用渲染数据&#xff0c;将模型Model中的数据展示给用户 SpringMVC视图的种类很多&#xff0c;默认有转发视图和重定向视图 当工程引入jstl的依赖&#xff0c;转发视图会自动转换为JstlView 若使用的视图技术为…...

一个同学升了leader,今年活还没干,他就已经想好组里成员的两次绩效考核怎么打了,还说:leader都是这样的!...

绩效是大家都比较关注的事情&#xff0c;那么作为领导&#xff0c;一般是怎么打绩效的呢&#xff1f;一位网友爆料&#xff1a;一个大学同学升了leader&#xff0c;前段时间跟他吃饭&#xff0c;他说他已经想好了今年组里成员的两次绩效考核怎么打了。该网友有点吃惊&#xff0…...

Docker 面试知识点

Docker 是什么&#xff1f; 是实现容器技术的一种工具是一个开源的应用容器引擎使用 C/S 架构模式&#xff0c;通过远程API 来管理 (我们本机是 C&#xff0c;docker 引擎是 S,实际的构建过程是在 docker 引擎下完成的)可以打包一个应用及依赖包到一个轻量级、可移植的容器中 …...

Phi-4-Reasoning-Vision惊艳案例:模糊低质图中关键信息增强与可信度评估

Phi-4-Reasoning-Vision惊艳案例&#xff1a;模糊低质图中关键信息增强与可信度评估 1. 专业级多模态推理工具 Phi-4-Reasoning-Vision是基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具&#xff0c;专为双卡4090环境优化。这个工具严格遵循官方SYSTEM …...

如何利用AI技术修复模糊视频:3大实用方案让影像重获新生

如何利用AI技术修复模糊视频&#xff1a;3大实用方案让影像重获新生 【免费下载链接】SeedVR-7B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/SeedVR-7B 翻看多年前的家庭录像&#xff0c;画面模糊得连亲人的面容都难以辨认&#xff1b;手机拍摄的旅行…...

从电机测试到上位机:一个硬件工程师用LabWindows/CVI搞定周立功USBCAN的踩坑实录

从电机测试到上位机&#xff1a;LabWindows/CVI与USBCAN实战指南 作为一名长期与电机打交道的硬件工程师&#xff0c;我习惯了在示波器和逻辑分析仪的波形中寻找问题&#xff0c;却始终对那个神秘的"上位机"世界充满敬畏。直到某次项目 deadline 前两周&#xff0c;当…...

gitoxide日志系统:Rust实现的Git操作日志分析

gitoxide日志系统&#xff1a;Rust实现的Git操作日志分析 【免费下载链接】gitoxide An idiomatic, lean, fast & safe pure Rust implementation of Git 项目地址: https://gitcode.com/GitHub_Trending/gi/gitoxide 在日常的Git使用中&#xff0c;我们经常需要查看…...

从零实现Seq2Seq翻译模型:GRU与Attention机制深度解析

1. 从零理解Seq2Seq翻译模型 想象一下你正在教一个完全不懂法语的朋友翻译英文句子。你会先让他理解整个英文句子的意思&#xff08;编码&#xff09;&#xff0c;然后根据这个理解逐个单词翻译成法语&#xff08;解码&#xff09;。这就是Seq2Seq模型的核心思想——把序列到序…...

MATLAB/Simulink实战:手把手教你搭建模糊PID直流电机控制模型(附完整代码)

MATLAB/Simulink实战&#xff1a;从零构建模糊PID直流电机控制系统 在工业自动化领域&#xff0c;直流电机控制一直是工程师们面临的经典挑战。传统PID控制器虽然结构简单&#xff0c;但在面对非线性、时变系统时往往力不从心。而模糊PID控制这种融合了智能算法与传统控制理论的…...

nli-distilroberta-base政务应用:政策文件与市民咨询问题的蕴含关系智能应答

nli-distilroberta-base政务应用&#xff1a;政策文件与市民咨询问题的蕴含关系智能应答 1. 项目概述 在政务服务领域&#xff0c;每天都会收到大量市民咨询&#xff0c;如何快速准确地从政策文件中找到相关依据并给出标准答复&#xff0c;一直是政务热线和在线咨询平台的痛点…...

X265墒编码--代码分析

x265 墒编码 X265 HEVC编码器架构分析 一 整体代码架构 1.1 目录与模块划分 source/ ├── x265cli.cpp / x265cli.h # 命令行入口、参数解析、help ├── x265.h # 对外 API、参数结构、版本 ├── encoder/ # 编码核心…...

Keyviz终极指南:免费开源键盘可视化工具如何提升你的工作效率

Keyviz终极指南&#xff1a;免费开源键盘可视化工具如何提升你的工作效率 【免费下载链接】keyviz Keyviz is a free and open-source tool to visualize your keystrokes ⌨️ and &#x1f5b1;️ mouse actions in real-time. 项目地址: https://gitcode.com/gh_mirrors/k…...

传感器数据分发CollatedTrajectoryBuilder

一、前言首先对前面的知识做一个回顾&#xff0c;从 node_main.cc 文件中开始;//根据配置文件&#xff0c;命令行参数与话题重映射&#xff0c;订阅默认话题开始一条轨迹 node.StartTrajectoryWithDefaultTopics(trajectory_options);---------------------- 在node.cc里面 // …...