Spring Boot 进阶-详解SpringBoot的复杂数据校验规则

embedded/2024/10/9 8:06:29/

在这里插入图片描述
  在之前的文章中,我们介绍了SpringBoot整合JSR-303规则来完成数据校验操作。接下来我们来聊一聊关于数据校验的具体用法。

  之前的文章中举过一个简单的例子通过学生信息提交的例子来介绍了关于数据校验如何去做。那么接下来这篇文章,我们就来看看对于一些复杂的数据校验如何完成。

分组

  简单的举个例子,假设在添加学生的时候,不需要传入学号,但是在修改学生信息的时候需要传入学号,并且这个时候都是使用同一个参数对象来进行接收参数,那么这个时候,这样的数据校验如何去完成?

  遇到上面这种情况,就需要对学号进行分情况讨论了。专业一点的说法叫做分组校验,什么意思呢?就是说将所有新增相关的接口看作一组,这个时候是不需要执行非空校验的。而所有修改相关的接口看作一个分组,在这个分组规则中是需要进行非空校验的。

  在之前提过的所有的数据校验规则的注解中都有一个groups的属性,这里简单的拿@NotNull做个演示,代码如下。

java">@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(List.class)
@Documented
@Constraint(validatedBy = { })
public @interface NotNull {String message() default "{javax.validation.constraints.NotNull.message}";Class<?>[] groups() default { };Class<? extends Payload>[] payload() default { };/*** Defines several {@link NotNull} annotations on the same element.** @see javax.validation.constraints.NotNull*/@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })@Retention(RUNTIME)@Documented@interface List 

http://www.ppmy.cn/embedded/124964.html

相关文章

进入容器:掌控Docker的世界

进入容器&#xff1a;掌控Docker的世界 在这个快速发展的技术时代&#xff0c;你是否曾被Docker的庞大生态所吸引&#xff1f;那么&#xff0c;有没有想过在这个容器化的世界里&#xff0c;如何快速高效地“进入”这些隐藏在虚拟墙后的容器呢&#xff1f;容器就如同魔法箱&…

Linux操作系统——概念扫盲I

目录 虚拟机概念刨析 在那之前&#xff0c;询问什么是虚拟化&#xff1f; 现在来看看什么是虚拟机 虚拟机有啥好的 小差&#xff1a;那JVM也叫Java Virtual Machine&#xff0c;有啥区别呢&#xff1f; Reference 虚拟机概念刨析 我们下面来简单聊聊虚拟机这个概念。对于…

Spring Boot新闻推荐:机器学习集成

3系统分析 3.1可行性分析 通过对本新闻推荐系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本新闻推荐系统采用JAVA作为开发语言&#xff0c;Spring Boot框…

自动机器学习(AutoML):实战项目中的应用与实现

自动机器学习&#xff08;AutoML&#xff09;&#xff1a;实战项目中的应用与实现 目录 &#x1f50d; AutoML概念与实战意义&#x1f6e0;️ 使用TPOT进行模型选择与优化&#x1f5bc;️ 利用AutoKeras进行图像分类&#x1f4c8; 实际项目案例&#xff1a;金融数据预测&…

国庆作业

day1 1.开发环境 Linux系统GCCFDBmakefilesqlite3 2.功能描述 项目功能: 服务器&#xff1a;处理客户端的请求&#xff0c;并将数据存入数据库中&#xff0c;客户端请求的数据从数据库进行获取&#xff0c;服务器转发给客户端。 用户客户端&#xff1a;实现账号的注册、登…

探索Android折叠屏设备的分屏适配

探索Android折叠屏设备的分屏适配 前言 随着折叠屏和大屏设备的普及&#xff0c;如何为这些设备提供高效的用户体验成为移动开发者的重点挑战之一。Android通过引入 androidx.window 库&#xff0c;为开发者提供了支持折叠屏、多任务处理和分屏功能的强大工具。本文结合实际项…

WebAPI的初步认识

这里局限于Asp.net core Web API。 简单一句话&#xff0c;就是webApi支持我们专注于数据&#xff0c;返回值可以直接返回对象。且支持RestFul风格的编程。RestFul编程就是 资源&#xff08;Resource&#xff09;&#xff1a;将所有的数据和功能都视为资源&#xff0c;每个资源…

贪心算法c++

贪心算法C概述 一、贪心算法的基本概念 贪心算法&#xff08;Greedy Algorithm&#xff09;&#xff0c;又名贪婪法&#xff0c;是一种解决优化问题的常用算法。其基本思想是在问题的每个决策阶段&#xff0c;都选择当前看起来最优的选择&#xff0c;即贪心地做出局部最优的决…