我们在开发的时候会有这样的需求,当新增时不需要校验id,但当修改时id不能为空,这时就要用到分组校验了。

第一步,新增UpdateGroup接口作为更新操作的标识

public interface UpdateGroup {
}

第二步,只有更新操作才需要校验的字段打上这个标识,其他没有这个标识的都是默认分组

@NotNull(groups = UpdateGroup.class)
private Integer id;@ApiModelProperty(value = "用户名")
@NotEmpty
private String username;

第三步,在controller验证时加上这个分组标识,没加的就用默认分组

@ApiOperation(value = "保存用户")
@PostMapping
public Result save(@RequestBody @Validated User user) {return resultOk();
}@ApiOperation(value = "修改用户")
@PutMapping
//@Validated({UpdateGroup.class, Default.class})表示UpdateGroup和默认分组都参与校验
public Result update(@RequestBody @Validated({UpdateGroup.class, Default.class}) User user) {return resultOk();
}

演示,修改用户时会去校验id,保存用户不会

参考项目(模块: SpringBoot-HelloWorld): https://gitee.com/huatin/java-test

SpringBoot入门-分组校验相关推荐

  1. SpringBoot 实现分组校验

    实现的需求是: 当enabled字段为true时,则校验某些字段,否则不校验 效果图 开启时校验 关闭时,不校验 实现步骤 引入依赖 <dependency><groupId> ...

  2. SpringBoot - 优雅的实现【参数分组校验】高级进阶

    文章目录 Pre 需求 实现三部曲 Step1 定义分组接口 Step2 给参数分配分组 Step3 指定分组 Step4 验证 源码 Pre SpringBoot - 优雅的实现[参数校验]高级进阶 ...

  3. springboot中hibernate validator校验模式,分组校验,自定义校验

    检验模式 上面例子中一次性返回了所有验证不通过的集合,通常按顺序验证到第一个字段不符合验证要求时,就可以直接拒绝请求了.Hibernate Validator有以下两种验证模式: 普通模式(默认是这个 ...

  4. element form自定义校验_SpringBoot分组校验及自定义校验注解

    前言   在日常的开发中,参数校验是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性.在此之前写过一篇SpringBoot统一参数校验主要介绍了一些简单的校验方法.而这篇则是 ...

  5. SpringBoot入门到精通-SpringBoot启动流程(七)

    定义自己的starter SpringBoot入门到精通-Spring的注解编程(一) SpringBoot入门到精通-SpringBoot入门(二) SpringBoot入门到精通-Spring的基 ...

  6. SpringBoot后端数据校验实战

    本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:SpringBoot后端数据校验实战 一般我们会在Controller的接口中对前端传递的参数做数据校验,这是一个后端开发人员的基本素养 在Sp ...

  7. java分组校验_SpringBoot @Validated注解实现参数分组校验的方法实例

    前言 在前后端分离开发的时候我们需要用到参数校验,前端需要进行参数校验,后端接口同样的也需要,以防传入不合法的数据. 1.首先还是先导包,导入pom文件. org.springframework.bo ...

  8. SpringBoot 入门04

    SpringBoot笔记 一.SpringBoot入门 1.SpringBoot简介 简化spring应用的框架 整个Spring技术栈的大整合 j2ee开发的一站式解决方案 2.微服务 2014 马 ...

  9. SpringBoot:参数校验的使用(validator)

    文章目录 SpringBoot参数校验的使用(validator) 一.validator简介 二.注解介绍 内置注解 扩展注解 三.validator的使用(手动校验) 创建校验工具类 对一个对象进 ...

最新文章

  1. python3 字符串大小写转换
  2. lsof 查看进程打开那些文件 和 查看文件给那个进程使用
  3. 【收藏】误删idea 的.iml文件后的处理方法
  4. 办公室心理学-九型人格导图
  5. 面试必会系列 - 1.8 Spring IOC / AOP原理
  6. linux操作系统使用论文_Linux高性能服务器设计
  7. AWS RDS强制升级的应对之道——版本升级的最佳实践
  8. 中国已与36个国家(地区)海关实现“经认证的经营者”(AEO)互认
  9. 使用剪切板[4]: 如果把子控件一起复制? - 同时回复 ghd2004 的问题
  10. eclipse安装maven3
  11. mongoDB学习--建库、删库、插入、更新
  12. 调试Javascript代码(浏览器F12)
  13. PuttyPsftp命令行实现自动登录
  14. element-ui 下拉框实现拼音搜索
  15. AsyncTask异步加载给视频截取第一帧图片
  16. 宝宝吃饭不乖,怎么办?
  17. 【ftp的安装和使用】
  18. 服务器的原点和限位信号,CANopen--基于DS402协议的伺服电机原点回零模式实现
  19. 生成两组相互独立服从标准正态分布的随机数(推导过程)
  20. 谈谈企业的持续交付流水线设计

热门文章

  1. 天源迪科与阿里云发布联合解决方案,基于阿里云原生产品打造卓越的数字化采购平台
  2. surfer学习记录
  3. 渝粤题库 国家开放大学1838公共政策概论 (2)
  4. 电子政务的发展及对策研究
  5. 大学计算机基础试题第六章,大学计算机基础第六章.doc
  6. java rgb转colour_JAVA图像处理系列(六)—— 色彩转换RGB vs HSL
  7. HLDSUpdateTool
  8. 自动驾驶模拟试验构成要素和验证
  9. SQLMap 扫描利用SQL注入
  10. Java基础15-java进阶(6)【网络编程】