今天工作中遇到了一个问题,在接口请求时出现了
org.springframework.beans.factory.NoUniqueBeanDefinitionException的运行时异常,其描述为No qualifying bean of type 'javax.validation.Validator' available: expected single matching bean but found 2: getValidator,mvcValidator,大致意思就是说没有符合条件的Validatorbean,为什么没有符合的条件呢,因为在匹配 bean 的时候,spring匹配到了两个。

因为同事来问,我一开始也是纳闷为什么会有两个,首先可以确定的是,配置文件中有配置过一个 LocalValidatorFactoryBean,而这个肯定不能去掉,因为配置它的目的是为了通用的 message。一开始用了一个相对邪道的方法,就是不管你多出了几个 Validator,我就是只要我配置的这一个,那么,其实只需要加上 @Primary 注解即可

但这并没有本质性的解决问题,后来注意到在 Swagger配置类里被加了一个没有实际意义的 @EnableWebMvc 的注解,这个注解的其中一个功能就是会默认配置一个 OptionalValidatorFactoryBean,而这个就是导致此次问题的主要原因,去掉即可。
以上就是本篇文章的全部内容,希望可以帮助到看文章的你!
相关阅读
版权声明:本文为AhogeK原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。