Validated参数校验List
接⼝⼊参需要各种校验,springboot⾥的validate⾮常好⽤
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
但是之前写的⼀个接⼝参数校验没问题,后来突然不⽣效了。
接⼝⼊参是 List<E> ,实体类属性已经加了各种规则,⼊参前也加了 @Valid ,controller类前也加了 @Validated,之前是访问接⼝,传递参数是 [{}] ,(list⾥有⼀个对象,但是对象是空)会校验属性值。后来突然不校验了,失效了。
失效时参数是 [] ,(list⾥没有对象,list空)这时就不会校验实体类的属性了,好像是注解失效了,⽹上查了很多博客,说的最多的也是CV最多的都让新写⼀个类
public class ValidList<E> implements List<E> {
@Valid
private List<E> list = new LinkedList<>();
//其他内容省略
}
但是完全不解决问题啊本⾝就是空集合了,肯定不会去校验⾥⾯的属性了
这时只需要给接⼝参数再加⼀个 @NotEmpty 注解,就可以完美解决了,参数空集合,实体类的属性校验都搞定了。