如何将Spring bean注入Validator(hibernate)

春季文档

我已阅读以下春季文档:

默认情况下,LocalValidatorFactoryBean配置使用Spring创建ConstraintValidator实例的SpringConstraintValidatorFactory。 这允许您的自定义ConstraintValidators像任何其他Spring bean一样受益于依赖注入。

我写了自定义验证器:

public class FieldMatchValidator implements ConstraintValidator<FieldMatch, Object>{
    @Autowired
    MyBeanDao dao;
    ...
}

但在调试中,我看到dao为空。

请解释我不明白文档或我错误配置的东西?


使用Spring Validator,它也实现了Bean Validation API。

请参阅7.8.2配置Bean验证提供程序:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html

您也可以将其用于方法验证,请参阅上述文档中的“Spring驱动的方法验证”一节。

[UPDATE1]

如果你想让hibernate验证持久性,你需要在你的enityManagerFactory中设置jpa属性javax.persistence.validation.factory:

            <property name="jpaPropertyMap">
              <map>
                <entry key="javax.persistence.validation.factory" value-ref="validatorFactory" />
              </map>
            </property>

您可能还需要为事件设置验证组,请参阅:http://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/validator-checkconstraints.html#validator-checkconstraints-orm-hibernateevent

链接地址: http://www.djcxy.com/p/82027.html

上一篇: How to inject spring bean into Validator(hibernate)

下一篇: Hibernate EntityManager, is it supposed to be used as a singleton?