JSR303数据校验可以用于校验数据是否合法,不合法的会报错
如前端输入电子邮件地址时,java也有类似用法,当值不合法时报错
首先引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</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的值不符合邮箱格式。报错并输出”邮箱格式错误”
一个字段可以设置多个校验检查
常见校验规则
数值范围检查
@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 对象是否符合正则表达式的规则