我已阅读以下春季文档:
默认情况下,LocalValidatorFactoryBean配置一个 使用Spring创建的SpringConstraintValidatorFactory ConstraintValidator实例。这允许您的自定义 ConstraintValidators受益于依赖注入 其他春豆。
我写了自定义验证器:
public class FieldMatchValidator implements ConstraintValidator<FieldMatch, Object>{
@Autowired
MyBeanDao dao;
...
}
但是在调试中我看到dao为null。
请解释我不懂文档或者我配错了什么?
答案 0 :(得分:1)
使用Spring Validator,它还实现了Bean Validation API。
请参见7.8.2配置Bean验证提供程序:
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html
您也可以将它用于方法验证,参见&#34; Spring-driven方法验证&#34;上面文档中的部分。
<强> [UPDATE1] 强>
如果你希望hibernate在persist上验证,你需要在你的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