首页 > 其他分享 >@Validated指定校验顺序

@Validated指定校验顺序

时间:2023-09-19 10:44:31浏览次数:35  
标签:Validated 校验 顺序 参数 NotNull 注解 GroupSequence class

在Java中,使用@NotNull注解时,可以指定多个参数的顺序。为了指定顺序,你可以使用@GroupSequence注解。

首先,为每个需要校验的参数定义一个接口,并在接口上添加@GroupSequence注解,指定参数的校验顺序。然后,在每个参数上使用@NotNull注解。

下面是一个示例代码:

java
import javax.validation.GroupSequence;
import javax.validation.constraints.NotNull;

public class MyRequest {

@NotNull(groups = {FirstGroup.class})  
private String field1;  

@NotNull(groups = {SecondGroup.class})  
private String field2;  

public interface FirstGroup {}  
public interface SecondGroup {}  

@GroupSequence({FirstGroup.class, SecondGroup.class})  
public interface ValidationOrder {}  

}
在上面的示例中,我们定义了两个参数field1和field2,并使用@NotNull注解进行约束。我们还定义了两个接口FirstGroup和SecondGroup,分别用于表示参数的校验组。最后,我们定义了一个接口ValidationOrder,并使用@GroupSequence注解指定了参数的校验顺序。

这样,当对MyRequest对象进行校验时,将按照指定的顺序进行校验。首先校验field1,然后校验field2。如果任何一个参数不满足约束条件,将抛出相应的异常。

标签:Validated,校验,顺序,参数,NotNull,注解,GroupSequence,class
From: https://www.cnblogs.com/LoveShare/p/17713999.html

相关文章

  • 顺序存储的满m叉树编号为 k 的结点的双亲结点的编号
    顺序存储的满m叉树编号为i的结点的孩子结点的编号的范围设其编号为k,在它之前的结点个数等于i结点之前的每个结点的孩子数,再加上一个根节点,于是\[k=(i-1)m+1+1\\(i-1)m+2\]最后一个孩子结点的编号\[k+m-1=(i-1)m+2+m-1\\=(i-1)m+m+1\]编号为k的结点的双亲结点的编号假......
  • Python中装饰器的顺序
    什么是装饰器,它们如何被使用,以及我们如何利用它们来构建代码。我们将看到装饰器是如何成为一个强大的工具,可以用来为我们的应用程序添加功能,并且可以在Python编程语言中找到。装饰器顺序在Python中,装饰器是一个特殊的函数,可以修改另一个函数的行为。装饰器是一种设计模式,它在不......
  • Delphi7中单元文件内各个部分的执行顺序
    注:本文主要是讨论delphi程序启动时和退出时的执行顺序,期间有些知识来源于Delphi帮助,有些来自《Delphi7程序设计教程》(这本书只告诉我有initialization和finalization这两个关键字,但是没讲明白)(唉,现在的书只讨论框框架架,不讨论细节,写出来的东西让你看能看懂,别人一问或者自己一想,......
  • 5.0 CRC32校验技术概述
    CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,并以此来判定特定程序内存是否发生了变化,如果发生变化......
  • 学习后的顺序表(结点内容只设学号、姓名),表内采用数组,数组0位存放数据,相关的函数均按此
    #include<iostream>#include<string.h>usingnamespacestd;typedefstruct{ intid; stringname;}Node;//结点定义typedefstruct{ Node*element;//基地址(动态长度) intlength;//表长}Linklist;#defineMAXSIZE100//最大长度voidmenu();//声明菜单函数voidCreatelist(Lin......
  • vim插件使用python编写+AXI非对齐传输如何发送+verdi配置搜索顺序+verible和verilator
    vim插件使用python编写虽然vim有自己的一套语法格式,但是学习成本放着呢,语言那么多,啥都学哪学的过来嘛。不过vim确实是支持python的,但是是python2,而不是python3,因此语法上的一些问题要兼容下。这个是官方手册,正确而可靠的部分。https://vimdoc.sourceforge.net/htmldoc/if_pyth......
  • TienChin 渠道管理-配置校验失败信息
    新建ValidationMessages.properties:channel.name.notnull=渠道名称不能为空channel.type.notnull=渠道类型不能为空channel.status.notnull=渠道状态不能为空channel.type.invalid=渠道类型无效channel.status.invalid=渠道状态无效......
  • 消息队列中如何保证消息的顺序性?
    面试官心理分析其实这个也是用MQ的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题。面试题剖析我举个例子,我们以前做过一个mysql binlog 同步的系统,压力还是非常大的,日同步数据要达到上亿,就是说数据从一个mys......
  • Spring Boot 实现各种参数校验,非常实用
    本文会详细介绍SpringValidation各种场景下的最佳实践及其实现原理,死磕到底!简单使用JavaAPI规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernatevalidation是对这个规范的实现,并增加了校验注解如@Email、@Length等。SpringValidation是对hiberna......
  • 页面中点击按钮需要新建轮播(需要新建多个),出现顺序错乱的问题
    当页面中通过点击按钮切换轮播,即点击按钮需要newswiper,新建后,页面中swiper内容没有问题但是,点击上一个下一个按钮,顺序会发生错乱 在new之前需要使用destroy销毁 ......