2016-06-22 7 views
1

私はHibernateのドキュメントを調べていましたが、カスタムバリデータでオートワイヤリングを有効にするためにこの記事を読みました。カスタムバリデータで@Autowiringを使用するためにカスタムConstraintValidatorFactoryを実装する方法

https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html/chapter-bootstrapping.html#example-using-custom-constraint-validator-factory

しかし、私はのgetInstanceの実装を理解し、メソッドを放出しません。

基本的に私はそれらに書き込むはずのものはわかりません。

誰かが正しい方向に向けることができますか?これらの2つの方法のドキュメントで

+0

この目的のために、Springには既に[SpringConstraintValidatorFactory](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/beanvalidation/SpringConstraintValidatorFactory.html)があります。 – Lu55

答えて

0

ルック:

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を実装する方法の例がありますが、ifステートメントを使用し、new MyConstraintValidator...のようなものを呼び出す非常に簡単な実装もできます。 releaseInstanceの実装は、インスタンスが使用されなくなったときに何かを行う必要があるかどうかによって異なります。

関連する問題