Spring LocalValidatorFactoryBean未自动连接
我正在使用SpringWebMVC5,并且已经创建了validatorSpring LocalValidatorFactoryBean未自动连接,spring,spring-mvc,Spring,Spring Mvc,我正在使用SpringWebMVC5,并且已经创建了validatorMyValidator实现org.springframework.validation.validator和LocalValidatorFactoryBean工厂字段。 我想在我的应用程序中同时使用Bean验证和Spring验证 但在工厂字段上使用@Autowired时出错:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“org.spring
MyValidator实现org.springframework.validation.validator
和LocalValidatorFactoryBean
工厂字段。
我想在我的应用程序中同时使用Bean验证和Spring验证
但在工厂字段上使用@Autowired
时出错:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“org.springframework.validation.beanvalidation.localvalidatoryfactorybean”类型的合格bean可用
Hibernate验证程序位于类路径中验证程序和配置:
@Service
public class MyValidator implements
org.springframework.validation.Validator {
@Autowired
private LocalValidatorFactoryBean factory;
@Override
public boolean supports(Class<?> clazz) {
...some code...
}
@Override
public void validate(Object target, Errors errors){
javax.validation.Validator validator = factory.getValidator();
...some code...
}
}
@Configuration
@EnableWebMvc
@ComponentScan({"controller","service"})
public class WebConfig implements WebMvcConfigurer{
...some code...
@Bean
public LocalValidatorFactoryBean getValidator() {
return new LocalValidatorFactoryBean();
}
}
@服务
公共类MyValidator实现
org.springframework.validation.Validator{
@自动连线
私家菜豆厂;
@凌驾
公共布尔支持(类clazz){
…一些代码。。。
}
@凌驾
公共无效验证(对象目标、错误){
javax.validation.Validator Validator=factory.getValidator();
…一些代码。。。
}
}
@配置
@EnableWebMvc
@组件扫描({“控制器”、“服务”})
公共类WebConfig实现WebMVCConfiguer{
…一些代码。。。
@豆子
公共LocalValidatoryFactoryBean getValidator(){
返回新的LocalValidatoryFactoryBean();
}
}
我想你可能用错了@ComponentScan
根据组件扫描的弹簧文档值字段
如果不需要其他属性,则允许更简洁的注释声明-例如,@ComponentScan(“org.my.pkg”)而不是@ComponentScan(basePackages=“org.my.pkg”)
我怀疑您的软件包是否命名为“控制器”或“服务”
因此,只需删除它或用您要扫描的根包的正确名称替换它。如果bean是私有的,则无法从类外访问它!我担心您必须发布更多的代码(尝试创建允许复制问题的最小代码集).@Sanjari,但据我所知,Spring使用反射来访问privatefields@snieguu,我发布了我的代码的最后一个版本,所以现在我得到了错误:没有类型为'org.springframework.validation.beanvalidation.LocalValidatoryFactoryBean'的合格bean可用!问题是不仅web配置包含@ComponentScan({“service”,“controller”}),根配置也包括@ComponentScan(“服务”)