Итак, раньше я использовал JDK 8 с Sprint Boot 2.0.3, а теперь перешел на JDK 11 и Spring Boot 2.1.1. И у меня был TemplateEngine
Bean, который обрабатывал шаблоны тимили для письма, и он работал нормально с приведенной ниже конфигурацией ReloadableResourceBundleMessageSource
ReloadableResourceBundleMessageSource messageSourceThymeleafConfiguration = new ReloadableResourceBundleMessageSource();
messageSourceThymeleafConfiguration.setBasename("classpath*:i18n/messages");
messageSourceThymeleafConfiguration.setDefaultEncoding("UTF-8");
И теперь, когда я перешел на JDK 11 и Spring Boot 2.1.1, он внезапно перестал работать, и в электронных письмах вместо переводов на основе локали из файла свойств отображаются ключи свойств. Например:
??email.greeting_en??
??email.text1_en??
Я даже пытался заменить боб ReloadableResourceBundleMessageSource
на ResourceBundleMessageSource
и попробовать его, но он все еще не работает. Я попытался вмешаться в строку базового имени, используя classpath:i18n/messages
, i18n/messages
все еще не работает.
Любая помощь будет принята с благодарностью.
Редактировать: так выглядит вся моя Конфигурация, связанная с этим
@Configuration
public class MailServiceThymeleafConfiguration {
@Bean
public TemplateEngine templateEngineThymeleafConfiguration() {
SpringTemplateEngine templateEngineThymeleafConfiguration = new SpringTemplateEngine();
templateEngineThymeleafConfiguration.setTemplateResolver(emailTemplateResolver());
templateEngineThymeleafConfiguration.setMessageSource(messageSourceThymeleafConfiguration());
return templateEngineThymeleafConfiguration;
}
@Bean
@Description("Thymeleaf template resolver serving HTML 5 emails")
public ClassLoaderTemplateResolver emailTemplateResolver() {
ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
emailTemplateResolver.setPrefix("mails/");
emailTemplateResolver.setSuffix(".html");
emailTemplateResolver.setTemplateMode("HTML5");
emailTemplateResolver.setCharacterEncoding("UTF-8");
emailTemplateResolver.setOrder(1);
return emailTemplateResolver;
}
@Bean
public MessageSource messageSourceThymeleafConfiguration() {
ReloadableResourceBundleMessageSource messageSourceThymeleafConfiguration = new ReloadableResourceBundleMessageSource();
messageSourceThymeleafConfiguration.setBasename("classpath*:i18n/messages");
messageSourceThymeleafConfiguration.setDefaultEncoding("UTF-8");
return messageSourceThymeleafConfiguration;
}
}