事情要从校验入参属性说起,如果入参有几十个需要校验非空,如果写一堆的ifelse岂不难受,这时候我们就可以借鉴hibernate-validatorhibernate-validator框架来校验参数的非空性。
首先我们添加如下依赖:
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator --> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.2.Final</version> </dependency>
接下来我们给入参的bean添加非空判断的注解:
然后在在方法参数接收vo上加上@Valid :
来 我们测试下呢:
不对 ,我们还得写一个全局的异常处理控制:
大概是这样子的:
好 测试下:
emmmmm 为什么 明明是MethodArgumentNotValidException,结果却走错屋了,what happend?
周五下午搞了一个多小时 还是没解决 让同事看了 也没搞好,放弃吧。。。。
结果这周一来了 没要十分钟,问题找着了,像个六百斤的大胖子那么开森
定睛一看 发现不是一个包下的 赶紧换成
import org.springframework.web.bind.MethodArgumentNotValidException;
好了 问题解决了 ,至于为什么,你说呢?