Я отправляю свой ответ для java-конфигурации , потому что столкнулся с той же проблемой, когда переключался с xml на java-приложение для конфигурации, и это было полной болью в a ** to выяснить, почему это не работает. (Оказывается для меня, та же проблема, на которую указал @jiggy ... разве вы не знаете ...)
@Bean(name = "validator")
public LocalValidatorFactoryBean getLocalValidatorFactoryBean() {
final LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.setValidationMessageSource(this.getMessageSource());
validator.afterPropertiesSet();
return validator;
}
@Bean(name = "messageSource") // --> !!! This is what is so important!!!
public MessageSource getMessageSource() {
final ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); // easily swapped out with "ReloadableResourceBundleMessageSource", my app just doesn't have any necessary reloadable message requirements.
messageSource.setBasenames(ERROR_MESSAGE_DIRECTORY); // static String for a direct path to your "ValidationMessages.properties" file or whatever name you've given it.
return messageSource;
}