0

我正在尝试将一个添加LocalValidatorFactoryBean到现有的 Spring Boot Web 应用程序中。

无论我尝试过什么(稍后列出),它只会在大多数其他 bean 之后创建验证器(通过日志记录和断点验证),因此它们永远不会得到验证。

切线地,我在类路径上有hibernate-validator,并试图在我的@Component属性上使用javax.validation.constraints。

应用程序类有@Configuration,@EnableAutoConfiguration@ComponentScan({"my.package.**"}).

  • 使用 bean 添加 application.xml<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
  • 将上述 bean 添加到 validator.xml 并添加@ImportResource("validator.xml")
  • @Bean向Application 类添加一个新的。public Validator validator() { return new LocalValidatorFactoryBean(); }
  • 添加@Order(Ordered.HIGHEST_PRECEDENCE)到上面@Bean
  • BeanValidator @Component添加到扫描的包中。
  • 并添加@Order到它。

在所有情况下,只有在 FilterRegistrationBean 完成记录其业务后才加载验证器,但我要验证的 bean 已经创建并用于设置数据连接和安全性等。

自从我使用 Spring 以来已经有几年了,但是在 application.xml 中定义所有内容时我不记得这些问题。这只是 spring-boot 不支持的东西,我应该回到传统的 Spring 应用程序配置吗?

我怎样才能让它验证我所有的豆子?

4

1 回答 1

0

我忘了做一个BeanValidationPostProcessor

于 2015-12-09T11:43:50.080 回答