当前位置: 首页 > article >正文

spring boot整合Hibernate Validator分组校验

待校验的类

public class User {
    @NotBlank(message = "用户名不能为空", groups = {Login.class})
    private String username;

    @NotBlank(message = "密码不能为空", groups = {Login.class})
    private String password;

    @NotBlank(message = "email不能为空", groups = {Register.class})
    private String email;

    @Min(value = 18, message = "年龄必须大于18岁", groups = {Register.class})
    private int age;
}

分组接口

public interface Login {}
public interface Register {}

public class UserController{
	@PostMapping("/login")
	public String login(@Validated(Login.class) @RequestBody User user) {
	    //...
	}
	
	@PostMapping("/register")
	public String register(@Validated(Register.class) @RequestBody User user) {
	    //...
	}
}

上面的例子中,User类分别使用了Login和Register两个分组。在login方法中,只校验User对象的username和password字段,其它字段不会被校验;在register方法中,只校验User对象的email和age字段,其它字段不会被校验。

注意,分组校验需要使用@Validated注解,并且需要指定分组。如果不指定分组,则会默认校验所有字段。同时,使用分组校验需要在User类中定义分组标识,例如Login和Register接口。


http://www.kler.cn/news/17755.html

相关文章:

  • 如何在Firefox中使用最小字体
  • 基于Vue的个性化网络学习笔记系统
  • PBDB Data Service:Basis and precision of coordinates(坐标的基础和精度)
  • 学习Transformer前言(Self Attention Multi head self attention)
  • (5)Qt—ui常用类
  • webconsole使用方法(fastapi框架)
  • 【第四篇:解决校招面试中的测试设计题目】
  • 蓝牙耳机什么牌子好?500内好用的蓝牙耳机推荐
  • Oracle 修改 sga_target 参数设置,虚拟内存值设置
  • 如何设计一个可扩展的优惠券功能
  • 磁盘U盘变本地磁盘寻回教程
  • 古剑飞仙手游Linux系统服务器架设教程
  • “中特估”乘风破浪!后续机遇在哪?
  • Java9比Java8改进了什么
  • SHOP.COM EDI需求分析
  • PHP程序员和Python程序员的职业前景怎么样?我来聊聊自己的体会
  • 作业3:智能汽车车载网络
  • 为什么要建数据仓库,而不是直连数据源?
  • maven依赖jar包时版本冲突的解决
  • JVM系列-第5章-堆(JVisualVM)
  • ChatGPT带你一起了解C语言中的fseek()
  • MATLAB实现工业PCB电路板缺陷识别和检测
  • 【Python入门】Pycharm的使用指南
  • 【Stable Diffusion】ControlNet基本教程(三)
  • 想要跳槽涨薪 那你准备拿下 Framework 了吗?
  • 【unity造轮子】2d敌人AI的实现,并自动躲避障碍物
  • 详细版简单易学版TypeScript各类型声明
  • 11. Kubernetes 开章
  • 观察者模式
  • 爬虫实验笔记