San*_*jay 5 spring spring-mvc spring-validator
在我的一个Spring应用程序中,我计划MethodValidationPostProcessor用于验证服务方法参数.据我所知,为此,我必须MethodValidationPostProcessor在ApplicationContext中有一个对象,而后者必须validator注入一个对象.我在@Configuration课堂上这样做:
@Bean
public LocalValidatorFactoryBean validator() {
return new LocalValidatorFactoryBean();
}
@Bean
public MethodValidationPostProcessor getMethodValidationPostProcessor(){
MethodValidationPostProcessor processor = new MethodValidationPostProcessor();
processor.setValidator(validator());
return processor;
}
Run Code Online (Sandbox Code Playgroud)
然后,我的服务类看起来像这样:
@Service
@Validated
public class SomeService {
public void someMethod(@Valid SomeForm someForm) {
.
.
.
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我的一些对象需要一些自定义验证器.例如,对于注册表单,我打算使用JoinDataValidator扩展LocalValidatorFactoryBean,如下所示:
@Service("joinDataValidator")
public class JoinDataValidator extends LocalValidatorFactoryBean {
@Override
public void validate(final Object target, final Errors errors) {
super.validate(target, errors);
// check for duplicate email
}
@Override
public boolean supports(Class<?> clazz) {
return JoinForm.class.equals(clazz);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,对于不同的服务类,我将需要多个验证器.我无法弄清楚如何告诉配置MethodValidationPostProcessor使用不同的验证器,具体取决于要验证的Service类,或者什么是处理这种场景的好方法.我很感激帮助.
更新:创建了一张票:https://jira.spring.io/browse/SPR-12563
| 归档时间: |
|
| 查看次数: |
2037 次 |
| 最近记录: |