Use OptionalValidatorFactoryBean in Configurers

Configurers and BeanDefinitionParsers should use
OptionalValidatorFactoryBean instead of
LocalValidatorFactoryBean.

The Optional implementation catches and logs setup
exceptions, useful when a validation API is present on
the classpath but not the actual implementation.

Issue: SPR-11272
This commit is contained in:
Brian Clozel
2014-01-03 22:36:12 +01:00
parent 3bed6cfc7c
commit b9c8f47b01
4 changed files with 12 additions and 14 deletions

View File

@@ -305,7 +305,7 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
* <li>delegating to getValidator() first</li>
* <li>if none returned, getting an existing instance with its well-known name "mvcValidator", created by an MVC configuration</li>
* <li>if none returned, checking the classpath for the presence of a JSR-303 implementation before creating a
* {@code LocalValidatorFactoryBean}</li>
* {@code OptionalValidatorFactoryBean}</li>
* <li>returning a no-op Validator instance</li>
* </ul>
*/
@@ -318,7 +318,7 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
else if (ClassUtils.isPresent("javax.validation.Validator", getClass().getClassLoader())) {
Class<?> clazz;
try {
String className = "org.springframework.validation.beanvalidation.LocalValidatorFactoryBean";
String className = "org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean";
clazz = ClassUtils.forName(className, AbstractMessageBrokerConfiguration.class.getClassLoader());
}
catch (ClassNotFoundException e) {