Hibernate Validator校验框架的基本使用

这篇博客介绍了如何在SpringBoot项目中使用Hibernate Validator进行参数校验,包括创建SpringBoot项目、设置异常处理器,以及@Validated分组功能的详细使用。作者通过创建实体类和控制器,演示了校验注解如@NotNull、@NotEmpty、@NotBlank的使用,并讨论了@Valid和@Validated的区别。同时,文章深入讲解了@Validated分组校验的场景、配置及解决分组后校验失效的方法。
摘要由CSDN通过智能技术生成

一、 创建一个SpringBoot项目,导入相关依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Hibernate Validator -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
    <version>2.7.0</version>
</dependency>

二、创建测试的实体类和控制器

1. 在entity包下创建用于测试的实体类Student

package com.spq.hibernatevalidatordemo.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @Description 测试实体类
 * @Date 2022/1/20
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Student {

    @NotNull(message = "id不能为空")
    private Long id;

    @NotBlank(message = "姓名不能为空")
    private String name;

    @Range(min = 1, max = 150, message = "年龄不能小于1和大于150")
    private Short age;

    @NotBlank(message = "性别不能为空")
    private String sex;

    @NotEmpty(message = "兴趣不能为空")
    private List<String> interest;
}

2. 在controller包下创建控制器StudentController

package com.spq.hibernatevalidatordemo.controller;

import com.spq.hibernatevalidatordemo.entity.Student;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description 用于测试的控制器
 * @Date 2022/1/20
 */
@RestController
public class StudentController {

    /**
     * 用于测试的方法,返回方法传过来的参数
     */
    @PostMapping("/valid")
    public String valid(@RequestBody @Validated Student student) {
        return student.toString();
    }
}

三、 使用Postman测试方法

1. 测试正确的情况

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值