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

Spring参数注解,支持数组入参(List)校验

Spring参数注解,支持数组入参(List)校验


1、controller类增加@Validated注解,对应的数组参数增加@Valid注解。

@Validated
@RestController
@RequestMapping("/parent")
public class ParentController {private FatherRepository fatherRepository;/*** DI*/public ParentController(FatherRepository fatherRepository) {this.fatherRepository = fatherRepository;}@PostMapping("/test")public void test(@RequestBody @Valid List<Father> fathers) {}
}

2、对返回的校验信息异常进行全局捕获,封装后返回。

@RestControllerAdvice
@Component
public class ControllerExceptionHandler {/*** handle controller methods parameter validation exceptions** @param exception ex* @return wrapped result*/@ExceptionHandler@ResponseBody@ResponseStatus(HttpStatus.OK)public DataContainer handle(ConstraintViolationException exception) {Set<ConstraintViolation<?>> violations = exception.getConstraintViolations();StringBuilder builder = new StringBuilder();for (ConstraintViolation<?> violation : violations) {builder.append(violation.getMessage());break;}DataContainer container = new DataContainer(CommonCode.PARAMETER_ERROR_CODE, builder.toString());return container;}
}

参考 https://stackoverflow.com/questions/28150405/validation-of-a-list-of-objects-in-spring

相关文章:

Spring参数注解,支持数组入参(List)校验

Spring参数注解&#xff0c;支持数组入参&#xff08;List&#xff09;校验 1、controller类增加Validated注解&#xff0c;对应的数组参数增加Valid注解。 Validated RestController RequestMapping("/parent") public class ParentController {private FatherRepos…...

如何使用ArcGIS进行可视化分析

概述 通视分析是指以某一点为观察点&#xff0c;研究某一区域通视情况的地形分析&#xff0c;利用DEM判断地形上任意两点之间是否可以互相可见的技术方法&#xff0c;分为视线通视分析和视域通视分析&#xff0c;前者判断任意两点之间能否通视&#xff0c;后者从任一点出发&am…...

计算机竞赛 基于LSTM的天气预测 - 时间序列预测

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 机器学习大数据分析项目 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/po…...

uniapp 回退到指定页面 保存页面状态

uniapp 历史页面回退到指定页面。 getCurrentPages() 内容如下 let delta getCurrentPages().reverse().findIndex(item > item.route "pages/popularScience/daodi") if(delta-1){uni.navigateTo({url: /pages/popularScience/daodi,success: res > {},fa…...

ansible(1)-- 部署ansible连接被控端

目录 一、部署ansible 1.1 安装 1.2 测试连接 192.168.136.55 ansible 192.168.136.56被控端 一、部署ansible 1.1 安装 zabbix-s只是主机名&#xff0c;不用在意&#xff0c;更好该主机也安装了zabbix&#xff0c;不好更改。 下载阿里云epel源 #安装阿里云的epel源&#…...

Log4j反序列化命令执行漏洞(CVE-2017-5645)Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

一.Log4j反序列化命令执行漏洞(CVE-2017-5645&#xff09; Apache Log4j是一个用于Java的日志记录库&#xff0c;其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码 环境&#xff1a;vulhub 工具下载地址&#xff1…...

echarts 之 科技感进度条

1.图片展示 2.代码实现 /* ng qty 进度条 */ <template><div class"ngqty-progress"><div class"ngqty-info"><span>X4</span><span>50%</span></div><div :id"barNgQtyProgress index" c…...

基于gin关于多级菜单的处理

多级菜单是很多业务场景需要的。下面是一种处理方式 // 生成树结构 func tree(menus []*video.XkVideoCategory, parentId uint) []*video.XkVideoCategory {//定义子节点目录var nodes []*video.XkVideoCategoryif reflect.ValueOf(menus).IsValid() {//循环所有一级菜单for …...

Oracle/PL/SQL奇技淫巧之Lable标签与循环控制

在一些存储过程场景中&#xff0c;可能存在需要在满足某些条件时跳出循环的场景&#xff0c; 但是在PL/SQL中&#xff0c;不能使用break语句直接跳出循环, 但是可以通过lable标签的方式跳出循环&#xff0c;例&#xff1a; <<outer_loop>> FOR i IN 1..5 LOOPDBMS…...

Docker基础操作

1.安装docker服务&#xff0c;配置镜像加速器 安装docker服务 清理缓存 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-enginesystemctl enable --now docker 脚…...

AMBA总线协议(8)——AHB(六):分割传输

一、前言 在之前的文章中&#xff0c;我们重点介绍了AHB传输的仲裁&#xff0c;首先介绍了仲裁相关的信号&#xff0c;然后分别介绍了请求总线访问&#xff0c;授权总线访问&#xff0c;猝发提前终止&#xff0c;锁定传输和默认主机总线&#xff0c;在本文中我们将继续介绍AHB的…...

时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化

时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化 目录 时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于SWD群体分解的分量可视化&#xff0c;基于群体分解的信号分解技术&#xff0c;MATLAB程序…...

【makefile】自动化变量的简述及实例

文章目录 10. env20. 简述百度百科常用的自动化变量 30. 实例90. 附件下载 10. env ubuntu1804 GNU Make 4.120. 简述 百度百科 https://baike.baidu.com/item/Makefile/4619787?frge_ala makefile 文件的格式&#xff1a; 目标&#xff1a;依赖命令软件编译的流程概述&am…...

IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/

IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/ Idea下载官网一键直达&#xff1a; 官网一键直达...

C#,《小白学程序》第一课:初识程序

曰&#xff1a;扫地僧练就绝世武功的目的是为了扫地更干净。 1 文本格式 /// <summary> /// 《小白学程序》第一课&#xff1a;初识程序 /// </summary> /// <param name"sender"></param> /// <param name"e"></param&…...

LeetCode--HOT100题(38)

目录 题目描述&#xff1a;226. 翻转二叉树&#xff08;简单&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;226. 翻转二叉树&#xff08;简单&#xff09; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 LeetCode做题链…...

C语言:指针(超深度讲解)

目录 指针&#xff1a; 学习目标&#xff1a; 指针可以理解为&#xff1a; 字符指针&#xff1a; 定义&#xff1a;字符指针 char*。 字符指针的使用&#xff1a; 练习&#xff1a; 指针数组&#xff1a; 概念&#xff1a;指针数组是一个存放指针的数组。 实现模拟二维…...

Docker详解

文章目录 Docker详解一、Docker简介什么是容器 &#xff1f;容器技术有哪些优点 &#xff1f;什么是Docker &#xff1f;Docker的特点Docker的使用场景 二、Docker的基本组成Docker 客户端 / 守护进程Docker Image 镜像Docker Container 容器Docker Registry 仓库 三、Docker 依…...

软件开发方法:复用与扩展

软件开发方法&#xff1a;复用与扩展 一、面向对象二、进一步认识 一、面向对象 封装 工程上的意义&#xff1a;屏蔽细节&#xff0c;隔离变化 public、protected、private 继承 工程上的意义&#xff1a;复用 多态工程上的意义&#xff1a;高内聚&#xff0c;低耦合 —— 面…...

C++新经典09--函数新特性、inline内联函数与const详解

函数回顾与后置返回类型 函数定义中如果有形参则形参应该有名字&#xff0c;而不光是只有类型&#xff0c;但是如果并不想使用这个形参&#xff0c;换句话说这个形参并不在这个函数中使用&#xff0c;则不给形参名也可以&#xff0c;但在调用这个函数的时候&#xff0c;该位置…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...