栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用Spring的Validated注解实现参数分组校验

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Spring的Validated注解实现参数分组校验

一般大家在工作中使用最多的就是不进行分组的参数校验。使用如下:

  • 在对需要进行校验的类上加上@NotBlank、@Min等注解(注意这个注解是javax包下的的,不是Spring的)

  •  在Controller类中加上Spring注解@Validated

  • 当请求参数校验不通过就会抛出参数校验异常并给出提示信息。例如:
 'id'(Integer) must be greater than or equal to 1
当一个接口(新增接口)要求请求体的某个字段必填,另一个接口(修改接口)要求请求体的另一个字段必填,但都使用的是同一个请求实体,这种情况就需要使用分组校验功能了。
  • 首先在实体类的@NotBlank等注解后加上groups,使用自定义接口UpdateUserValidated和AddUserValidated

  • AddUserValidated接口继承了javax的Default接口(继承了default接口的才会对加了验证注解没有加分组验证的字段,例如上图的password字段也进行验证),而updateUserValidated没有(不会对password字段验证,只会验证id字段)

  •  自定义分组接口后,在Controller的@Validated注解中加入想使用的校验分组接口

  •  使用postman进行接口调用update接口
    • 没有传password字段也没有报错(因为自定义updateUserValidated接口没有继承default接口) 
    • age = 0没有报错,因为age字段分组校验是addUserValidated接口
    • id小于1才会报错

        

  •   使用postman进行接口调用add接口
    • id小于1不会报错
    • password不能为null或空字符串
    • age必须大于等于1

 

 

 

  • 总结:
    • 对同一个实体的不同字段要求校验时,需要使用分组校验功能。
    • 自定义接口需要继承default接口才能对没有指定分组校验方式的字段同时进行校验

希望有帮助,欢迎指正

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/601704.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号