我已经按照 Spring 4.0.5 文档中的说明在容器中配置 Bean 验证,使用 Hibernate Validator 5.1 和这个(Groovy)配置类:
@Configuration("validationConfig")
@Import(CreatorConfig)
@ImportResource("/META-INF/spring/mockito-mocks.xml")
static class Config {
@Bean
validator() {
new LocalValidatorFactoryBean()
}
@Bean
mvpp() {
new MethodValidationPostProcessor()
}
}
我正在测试的类在引用的CreatorConfig
类中实例化:
@Configuration
@DependsOn("validationConfig")
static class CreatorConfig {
@Bean
ticketCreator(TicketRepository tickets) {
new UploadTicketCreator(tickets)
}
}
我认为我需要在创建UploadTicketCreator
bean 之前注册后处理器,我将其分离到一个单独的配置类中,根据文档进行注释:
@Validated
public class UploadTicketCreator {
public UploadTicket createTicket(@Valid CreateTicketRequest request) {
// do stuff
}
}
然后我将其UploadTicketCreator
注入测试用例。我已验证自动装配运行正常(该字段已填充,并且它自己的tickets
字段是 Mockito 模拟)。但是,验证逻辑没有应用于我的创建者 bean,注入的 bean 是没有任何代理的原始 POJO。
我错过了验证设置吗?是否有文档中未提及的其他必需步骤?