Spring validaton使用未遂之排查过程
1、测试用例debug会经过我的validator而web controller的请求却不经过validator
方法:阅读spring官方文档,
Spring-9.jpeg
这部分之前读过,发现该有的配置都已配置,需要引入的包也依赖了。。。所以就以为解决不了了。。。
但是!!!在这一小结的结尾处!!!看到了介个:
spring-mvc.jpeg
也是是spring mvc的配置讲解部分,发现在spring mvc中需要使用@EnableWebMvc或者<mvc:annotation-driven>自动地注册bean validation到Spring Mvc中作为全局的一个validator,当然需要在classpath中引入一个Bean Validation的提供者,比如Hibernate Validator等;
所以果断在mvc配置中加入这些配置,之后就出现了后面的问题
2、log4j conflict
log4j.jpeg
log4j-level.jpeg
而lever=TRACE在log4j版本1.2.12之后才有,然后呢开始排查,先是在maven libraries中看到了log4j:1.2.9(可是我并没有手动去引入这个依赖啊),之后在maven dependencies diagram中,发现spring-data-redis和java-uuid-generator中都引入了这个版本的贵jar包,果断exclude掉。重新debug,完美~
3、console
在2之后,发现之前console上的这个warning也伴随逝去,啊!太天才~~~
log4j:WARN No appenders could be found for logger (com.alibaba.dubbo.common.logger.LoggerFactory).
log4j:WARN Please initialize the log4j system properly.
4、下面就是JSR-303build-in注解的使用,只需要注意在使用相应注解的地方加入@Valid,同时,一定要在对应的class前面加入@Valited注解。