Blick in die Dokumentation für diese beiden Methoden:
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);
}
Es sollte dann klar sein, dass der erste, der eine neue Instanz eines ConstraintValidator
zurückkehren sollte und die andere sollte tun, was ein sauberes zu tun ist erforderlich, bis . Es liegt dann an Ihnen, wie Sie diese implementieren. Diese link hat ein Beispiel, wie getInstance
mit BeanManagerProvider
zu implementieren, aber Sie können auch eine sehr einfache Implementierung, die verwendet if-Anweisungen und dann so etwas wie new MyConstraintValidator...
aufrufen. Die Implementierung von releaseInstance
hängt davon ab, ob Sie etwas tun müssen, wenn die Instanz nicht mehr verwendet wird.
Nur für diesen Zweck Spring hat bereits [SpringConstraintValidatorFactory] (https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/beanvalidation/SpringConstraintValidatorFactory.html) – Lu55