springboot@Valid注解用法详解

 

目录

一.@Valid注解的作用

二.@Valid注解的用法 

 三.更多实体类的校验注解如下

一.@Valid注解的作用

@Valid用于对象属性的检测,可以极大减少代码量,具体看我下面我娓娓道来 

现有一个User实体类:

 有个接口,执行添加User操作

现在如果想要对User中的姓名和age做非空校验和长度校验,如果在接口中频繁使用if会增加很大的代码量,这个时候@Valid注解就派上了用场。 

二.@Valid注解的用法 

1.引入依赖包

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
</dependency>
 
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.4.1.Final</version>
</dependency>
 
 
<!--如果是spring boot项目,可直接只用下列依赖包-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.6.5</version>
</dependency>

2.在User类的属性上增加 @Valid的校验注解

3.在Controller入参上添加@Valid注解

此时controller收到入参后就会对user进行校验

4.如果想获取验证结果

可以BindingResult 参数来获取验证结果

 三.更多实体类的校验注解如下

@Null:用在基本类型上;限制只能为null
@NotNull:用在基本类型上;不能为null,但可以为empty
@NotEmpty :用在集合类上面;不能为null,而且长度必须大于0 
@NotBlank: 用在String上面;只能作用在String上,不能为null,而且调用trim()后,长度必须大于0 
@AssertFalse:限制必须为false
@AssertTrue:限制必须为true
@Digits: 验证 Number 和 String 的构成是否合法  
@DecimalMax(value):限制必须为一个不大于指定值的数字,小数存在精度
@DecimalMin(value) :限制必须为一个不小于指定值的数字,小数存在精度
@Digits(integer,fraction) :限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Size(max,min):限制字符长度必须在min到max之间
@Max(value) :限制必须为一个不大于指定值的数字
@Min(value) : 限制必须为一个不小于指定值的数字
@Past:限制必须是一个过去的日期
@Future :限制必须是一个将来的日期
@Pattern(value): 限制必须符合指定的正则表达式
@Past:验证注解的元素值(日期类型)比当前时间早
@Email :验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email
 

猜你喜欢

转载自blog.csdn.net/w20001118/article/details/126011391