在SpringBoot使用BeanValidation校验参数

一、 Bean Validation

Bean Validation是Java定义的一套基于注解的数据校验规范。Hibernate Validation是Bean Validation的一个实现。
Bean Validation官网:https://beanvalidation.org/
Hibernate Validation官网:http://hibernate.org/validator/

二、注解介绍

validator内置注解:

注解 作用
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(value) 被注释的元素必须符合指定的正则表达式

Hibernate Validator 附加的注解:

注解 作用
@Email 被注释的元素必须是电子邮箱地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range 被注释的元素必须在合适的范围内
@NotBlank 验证字符串非null,且长度必须大于0

三、使用方法

1、添加依赖

使用idea新建SpringBoot项目,添加依赖:

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.1.Final</version>
</dependency>

2、创建传输对象:

@Data
public class StudentDTO {
   
    @NotNull(message = "id不能为空!")
    private Integer id;
    @NotNull(message = "姓名不能为空!")
    private String name;
    @NotNull(message = "年龄不能为空!")
    private Integer age;
    @NotNull(message = "性别不能为空!")
    private String sex;
}

3、创建controller,只需在参数前面加上@Validated注解就可以完成校验:

@RestController
public class DemoController {
   
    @PostMapping("/test")
    public RespVO test(@RequestBody @Validated StudentDTO studentDTO,BindingResult result){
   
     if(result.hasErrors()){
   
            return ApiResponse.error(result.getFieldError().getDefaultMessage());
        }
 
        return ApiResponse.success("success");
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务