我不知道是否需要以及更多关于此的代码/详细信息,但我愿意在需要时提供更多信息:)
我得到:Could not autowire. No beans of 'Validator' type found
。这里有类似的问题,但没有Validator
。我尝试通过构造函数自动装配它,但它仍然是相同的。我使用Intellij Ultime版。 spring-boot-starter-xxx-xxx
的最新版本,目前为1.4.1.RELEASE。
@Configuration
public class RestConfig extends RepositoryRestConfigurerAdapter {
@Autowired
private Validator validator;
@Override
public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
validatingListener.addValidator("beforeCreate", validator);
validatingListener.addValidator("beforeSave", validator);
}
}
编辑:
我将代码更改为此代码并且有效。谢谢你的回答..
@Bean
public Validator validator() {
return new LocalValidatorFactoryBean();
}
@Override
public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
validatingListener.addValidator("beforeCreate", validator());
validatingListener.addValidator("beforeSave", validator());
}
顺便说一句,我只是想知道投票反对这个问题的人是否可以解释为什么他/她这样做?
答案 0 :(得分:1)
Spring库只包含Validator
的接口。您需要向实际实现验证框架JSR-303
的项目添加依赖项,如Hibernate Validator。
答案 1 :(得分:1)
正如@rorschach所说,Spring库有一个接口。您需要实现才能使用验证程序。现在它可能是第三方实现或定制的用户定义实现。 这是LINK,它显示了Hibernate验证器和自定义验证器的示例。
答案 2 :(得分:1)
您可以添加@Qualifier
批注并通过以下字段进行注入,而不是像上面那样更改代码:
@Autowired
@Qualifier("defaultValidator")
private Validator validator;