SSM开发,使用springMVC框架中自带的spring验证框架来验证数据,编写了一个org.springframework.validation.Validator接口的验证器类SignUpValidator来对领域数据进行验证时,报了以下错误:
“org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘userController’: Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.validation.Validator’ available: expected single matching bean but found 2: signUpValidator,org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0”
“org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.validation.Validator’ available: expected single matching bean but found 2: signUpValidator,org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0”
看样子是系统不知道引用那个类的意思。
从网上搜索了相关资料,许多人是因为写了两个同名实现类才出现的,而本人只需要使用前者signUpValidator用作验证,后者org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0本人并不知道是拿来的类。
validator类:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB50MnR1TwUlaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLykjN5QDN0AjM2AjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
controller:
网上百科无意中看到一个倒赞很多的回答:
既然不知道重名在哪里,也不知道另一个validator是啥,那就指定名称注入吧。按spring的定义说,“@Resource注解有两个属性——name和type。Name属性指定Bean实例名称,即按照名称来装配注入;type属性指定Bean类型,即按照Bean的类型进行装配。”
Controller内:
Validator内:
即可解决问题。