Regardez la documentation de ces deux méthodes:
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);
}
Il devrait alors être clair que le premier doit retourner une nouvelle instance d'un ConstraintValidator
et l'autre devrait faire tout ce qui est nécessaire pour faire un nettoyage . C'est alors à vous de décider comment les implémenter. Ce link a un exemple comment implémenter getInstance
en utilisant BeanManagerProvider
mais vous pouvez également avoir une implémentation très simple qui utilise des instructions if, puis en appelant quelque chose comme new MyConstraintValidator...
. L'implémentation de releaseInstance
dépend de si vous devez faire quelque chose lorsque l'instance n'est plus utilisée.
Juste à cet effet du printemps a déjà [SpringConstraintValidatorFactory] (https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/beanvalidation/SpringConstraintValidatorFactory.html) – Lu55