Avoid reflection on OptionalValidatorFactoryBean

Closes gh-28939
This commit is contained in:
Stephane Nicoll
2022-08-08 16:34:49 +02:00
parent 2e1538a20b
commit cd2b7afc87
3 changed files with 11 additions and 20 deletions

View File

@@ -22,7 +22,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.BeanInitializationException;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationContext;
@@ -71,6 +70,7 @@ import org.springframework.util.PathMatcher;
import org.springframework.util.StringUtils;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean;
/**
* Provides essential configuration for handling messages with simple messaging
@@ -550,15 +550,12 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
validator = this.applicationContext.getBean(MVC_VALIDATOR_NAME, Validator.class);
}
else if (ClassUtils.isPresent("jakarta.validation.Validator", getClass().getClassLoader())) {
Class<?> clazz;
try {
String className = "org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean";
clazz = ClassUtils.forName(className, AbstractMessageBrokerConfiguration.class.getClassLoader());
validator = new OptionalValidatorFactoryBean();
}
catch (Throwable ex) {
throw new BeanInitializationException("Could not find default validator class", ex);
throw new BeanInitializationException("Failed to create default validator", ex);
}
validator = (Validator) BeanUtils.instantiateClass(clazz);
}
else {
validator = new Validator() {