Spring Boot Validation Set参数名称提供程序

时间:2016-08-08 11:14:49

标签: java spring spring-mvc spring-validator

我有一个Validator bean,它使用ReflectionParameterNameProvider返回正确的反射变量名称,例如methodName.myVarName反对methodName.arg0

@Bean
public Validator validator() {
    final ValidatorFactory validatorFactory = Validation.byDefaultProvider()
            .configure()
            .parameterNameProvider(new ReflectionParameterNameProvider())
            .buildValidatorFactory();
    return validatorFactory.getValidator();

这可以正常工作,但我的自定义验证器中没有Autowire个bean。 要在我的ConstraintValidator中启用bean自动装配,我必须使用。

@Bean
public Validator validator() {
    return new LocalValidatorFactoryBean();
}

但是我不能使用ReflectionParameterNameProvider

问题

如何将LocalValidatorFactoryBeanReflectionParameterNameProvider一起使用?

1 个答案:

答案 0 :(得分:0)

Spring LocalValidatorFactoryBean应该包含DefaultParameterNameDiscoverer,而StandardReflectionParameterNameDiscoverer依赖于enter image description here。它不适合你吗?你是Java 8吗? StandardReflectionParameterNameDiscoverer应与ReflectionParameterNameProvider

非常相似