Use MessageSource to interpolate bean validation messages
See gh-17530
This commit is contained in:
committed by
Andy Wilkinson
parent
ea9b155776
commit
bbb8367afb
@@ -28,6 +28,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnResource;
|
||||
import org.springframework.boot.validation.MessageInterpolatorFactory;
|
||||
import org.springframework.boot.validation.beanvalidation.FilteredMethodValidationPostProcessor;
|
||||
import org.springframework.boot.validation.beanvalidation.MethodValidationExcludeFilter;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
@@ -54,9 +55,10 @@ public class ValidationAutoConfiguration {
|
||||
@Bean
|
||||
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
|
||||
@ConditionalOnMissingBean(Validator.class)
|
||||
public static LocalValidatorFactoryBean defaultValidator() {
|
||||
public static LocalValidatorFactoryBean defaultValidator(ApplicationContext applicationContext) {
|
||||
LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean();
|
||||
MessageInterpolatorFactory interpolatorFactory = new MessageInterpolatorFactory();
|
||||
interpolatorFactory.setMessageSource(applicationContext);
|
||||
factoryBean.setMessageInterpolator(interpolatorFactory.getObject());
|
||||
return factoryBean;
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ public class ValidatorAdapter implements SmartValidator, ApplicationContextAware
|
||||
if (existing != null) {
|
||||
return wrap(existing, true);
|
||||
}
|
||||
return create();
|
||||
return create(applicationContext);
|
||||
}
|
||||
|
||||
private static Validator getExisting(ApplicationContext applicationContext) {
|
||||
@@ -130,10 +130,11 @@ public class ValidatorAdapter implements SmartValidator, ApplicationContextAware
|
||||
}
|
||||
}
|
||||
|
||||
private static Validator create() {
|
||||
private static Validator create(ApplicationContext applicationContext) {
|
||||
OptionalValidatorFactoryBean validator = new OptionalValidatorFactoryBean();
|
||||
try {
|
||||
MessageInterpolatorFactory factory = new MessageInterpolatorFactory();
|
||||
factory.setMessageSource(applicationContext);
|
||||
validator.setMessageInterpolator(factory.getObject());
|
||||
}
|
||||
catch (ValidationException ex) {
|
||||
|
||||
Reference in New Issue
Block a user