用来做啥的??

顾名思义,groups应该是用作分组的,那么,分组来做什么? 怎么分组的?
其实主要是用于对参数校验的一个分组,我们在对数据做不同操作的时候,可能对其中部分字段 有非空校验,比如更新的时候A、B…字段不能为空,,新增的时候A、C字段又不能为空B是可以空的,那么我们如果单独做校验可能就显得比较麻烦,代码看起来不是那么优雅,这里引入一个分组,将不同类型操作需要校验的字段分为一组,校验的时候只需要按组去校验字段就好了。具体使用看下面的代码

怎么用?

如下实体类User ,所有字段在create的时候都需要校验,createTime只是在update的时候才需要校验,注解如代码所示

@Data
@Builder
public class User {@NotBlank(groups = Create.class,message = "name 不能为空")private String name;@NotNull(groups = {Update.class,Create.class},message = "createTime 不能为空")private String createTime;@NotNull(groups = Create.class,message = "status 不能为空")private Integer status;/* 分组校验 */public @interface Create {}/* 分组校验 */public @interface Update {}
}

校验在controller层,只需要在参数前面加上@Validated注解,分别配置需要校验的组

@RestController
@RequestMapping("/group-valid-test")
public class GroupValidTest {@PostMappingpublic String create(@Validated(User.Create.class) @RequestBody User user){return "success";}@PutMappingpublic String update(@Validated(User.Update.class) @RequestBody User user){return "success";}}

测试验证

create时name为空的情况:

update时createTime为空的情况:

@NotNull中groups的作用相关推荐

  1. MapReduce中Combiner的作用

    问题提出: 众所周知,Hadoop框架使用Mapper将数据处理成一个<key,value>键值对,再网络节点间对其进行整理(shuffle),然后使用Reducer处理数据并进行最终输出 ...

  2. VMware虚拟机文件夹中各文件作用详解

    VMware虚拟机文件夹中各文件作用详解 虚拟机的文件管理由VMware Workstation来执行. 一个虚拟机一般以一系列文件的形式储存在宿主机中, 这些文件一般在由workstation为虚拟 ...

  3. Science:亚硝酸盐氧化细菌在黑暗海洋中的主要作用

    文章目录 亚硝酸盐氧化细菌在黑暗海洋中的主要作用 写在前面 摘要 热心肠日报 背景 结果 图1 非全长16S rRNA基因序列的系统发育树 图2 通过募集宏基因组片段的方法确定亚硝酸盐氧化细菌单扩增基 ...

  4. 丰度决定了细菌在复杂群落中的功能作用

    本文转载自"微生态笔记",已获授权 标题:Abundance determines the functional role of bacterial phylotypes in c ...

  5. tensorflow2.0中valid_data的作用是在训练的过程对对比训练数据与测试数据的准确率 损失率,便于判断模型的训练效果:是过拟合还是欠拟合(过拟合)

    tensorflow2.0中valid_data的作用是在训练的过程对对比训练数据与测试数据的准确率,便于判断模型的训练效果:是过拟合还是欠拟合 过拟合:训练数据的准确率较高而测试数据的准确率较低 欠 ...

  6. C#中构造函数的作用

    C#中构造函数的作用 共同点: 都是实例化对象,初始化数据的 默认构造是说所有的类都从祖先object那继承了空参的构造方法,你不写与写空参构造都存在,而有参数的构造一般是自己写的,写就有不写就没有, ...

  7. python里dir是什么意思_python中dir什么作用

    python中dir的作用是:1.dir函数传入数据类型返回该数据类型的所有内置方法:2.dir函数传入模块名返回该模块的所有属性和方法. dir() 内置函数的作用 python 内置方法有很多,无 ...

  8. 浅析SEO优化中标签的作用?

    目前,已经有很多企业网站有专门的优化人员来进行SEO优化,在网站SEO优化的过程中会使用到很多标签来利于搜索引擎的读取,提升网站的排名和权重.就以大连网龙科技旗下产品云霸屏为例来讲,云霸屏作为一款全网 ...

  9. Hibernate 中lazy的作用

    Hibernate 中lazy的作用 上一篇 / 下一篇  2009-06-24 20:02:20 / 个人分类:java 查看( 506 ) / 评论( 2 ) / 评分( 5 / 0 ) < ...

最新文章

  1. IE8 的兼容性问题总结
  2. python爬虫之美女图片爬取
  3. 解决vscode之前好好的能连接上linux服务器,后来报错,窗口出现故障
  4. 深入理解 JVM Class文件格式(六)
  5. Linux 创建快捷方式
  6. 经常和电脑、信息化设备打交道,食品保健养生非常重要!
  7. eclipse与myeclipse恢复已删除的文件和代码
  8. 深圳自然人报税系统的服务器地址,自然人电子税务局扣缴端怎么申报?
  9. Uniapp设置页面的背景图片
  10. 转载天涯:『天涯杂谈』 30岁公务员小勇的一点心得
  11. HashMap为什么线程不安全?
  12. 贝壳DMP平台建设实践
  13. 一键获取网易互娱内推攻略,快人一步拿offer!
  14. acmclub 2081 班级聚会上的游戏
  15. ROS学习笔记3_发布者Publisher
  16. PHP associate with Flash or micromedia
  17. 自定义Drawable:实现文字生成图片
  18. [GWCTF 2019]枯燥的抽奖 1——php_mt_seed
  19. vertical-align作用,基线详解
  20. PAT乙级 1012 数字分类 (20 分)

热门文章

  1. 猫大叫,两只老鼠开始逃跑,主人醒来,宝宝也醒来了并且哭了起来.
  2. 云锁nginx自编译教程(最新版)
  3. 异步电机发波方式总结与比较
  4. 2011.09.17
  5. java 报表 免费_一款免费的Java报表工具
  6. Linux基础篇–shell脚本编程基础
  7. python 卡方分布值_用Python进行最最最基础的统计检定
  8. WordPress主题开发教程:一个基主题的基础文件
  9. 菜鸟成长记-打开PDF文件,可以左右滑动
  10. 进程间通信——共享内存(Shared Memory)