JSR303校验的使用
2022-06-11 本文已影响0人
阿帕旗
JSR303校验
SpringBoot中如果使用此数据检验,需添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
常用的校验
@Null 必须为空
@NotNull 不能为空
@NotEmty 检查约束元素是否为NULL或者是EMPTY
@NotBlank 检查约束字符串是不是NULL还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格
@AssertTrue 必须为真
@AssertFalse 必须为假
@Min(value) 必须大于或等于 {value}
@Max(value=,message=) 必须小于或等于 {value=130}{message="年龄最大不能超过130"}
@DecimalMin(value) 约束元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 约束元素必须是一个数字,其值必须小于等于指定的最大值
@Size(min=,max=) size 必须在 {min} 和 {max} 之间
@Length(min=,max=) 约束字符串的大小必须在指定的范围内
@Digits(integer,fraction) 数值超出范围(<{integer} 位>.<{fraction} 位> 预期)
@Past 必须是过去的日期
@Future 必须是未来日期
@Pattern(value) 必须匹配以下正则表达式:{regexp}
@Email(vlaue) 验证邮箱格式是否正确
@Range 约束的元素必须在合适的范围内
使用例子
@Component //注册bean
@ConfigurationProperties(prefix = "person") //配置实体Person类通过yaml赋值
@Validated //添加数据校验
public class Person {
@Email(message="邮箱格式错误!")
private String name;
@NotEmpty
private String age;
@Past
private Date birth;
@AssertTrue
private Boolean happy;
Person:
name: "李玲"
错误提示
name不是邮箱格式
Property: person.name
Value: 李玲
Origin: class path resource [application.yaml] - 2:9
Reason: 邮箱格式错误!