我正在阅读Hibernate的文档,我遇到了这篇文章,以便在自定义验证程序中启用自动装配。
但是我不了解getInstance和release方法的实现。
基本上我不确定我应该写些什么。
有人可以指出我正确的方向。
答案 0 :(得分:-1)
查看这两种方法的文档:
public interface ConstraintValidatorFactory {
/**
* @param key The class of the constraint validator to instantiate.
*
* @return A new constraint validator instance of the specified class.
*/
<T extends ConstraintValidator<?,?>> T getInstance(Class<T> key);
/**
* Signal ConstraintValidatorFactory that the instance is no longer
* being used by the Bean Validation provider
*
* @param instance validator being released
*/
void releaseInstance(ConstraintValidator<?,?> instance);
}
然后应该清楚的是,第一个应该返回ConstraintValidator
的新实例,而另一个应该做任何需要进行清理的事情。然后由您决定如何实现它们。这个link有一个示例如何使用getInstance
实现BeanManagerProvider
,但您也可以使用if语句然后调用类似new MyConstraintValidator...
的非常简单的实现。 releaseInstance
的实现取决于在不再使用实例时是否需要执行任何操作。