JSR303数据校验可以用于校验数据是否合法,不合法的会报错
如前端输入电子邮件地址时,java也有类似用法,当值不合法时报错

首先引入依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-validation</artifactId>
  4. </dependency>

或者是

<dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.0.17.Final</version>
            <scope>compile</scope>
        </dependency>

老版本不需要引入依赖,新版本需要

@validated

在实体类或者配置类前加上此注解,以启用数据校验

校验规则注解

在类中的字段前加上不同校验规则注解,以对字段进行不同的校验规则。这些规则注解在启用数据校验后@validated才能使用

@Component //注册bean到容器中
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
    @Email(message="邮箱格式错误") //name必须是邮箱格式
    private String email;

@Email的属性值为错误信息,这里如果email的值不符合邮箱格式。报错并输出”邮箱格式错误”
一个字段可以设置多个校验检查

常见校验规则

有的地方把校验规则注解看作是@validated的参数

数值范围检查

@Max(value=120,message="年龄最大不能查过120")
private int age;
@Min 用法与@Max同

邮箱格式限制

@Email(message="邮箱格式错误")
private String email;

空检查

@NotNull(message="名字不能为空")
private String userName;

其空检查

@Null 验证对象是否为null
@NotNull 验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty 检查约束元素是否为NULL或者是EMPTY.

Booelan检查

@AssertTrue 验证 Boolean 对象是否为 true
@AssertFalse 验证 Boolean 对象是否为 false

长度检查

@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=, max=) string is between min and max included.

日期检查

@Past 验证 Date 和 Calendar 对象是否在当前时间之前
@Future 验证 Date 和 Calendar 对象是否在当前时间之后
@Pattern 验证 String 对象是否符合正则表达式的规则