java - Spring Boot:如何访问服务或存储库中的语言环境
问题描述
我在 Spring Boot 中遵循了一些国际化教程。
(https://www.youtube.com/watch?v=Y7pHhui0cD4和https://www.baeldung.com/spring-boot-internationalization)
到目前为止,我是这样配置它的:
@Configuration
public class InternationalizationConfiguration {
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
sessionLocaleResolver.setDefaultLocale(Locale.GERMAN);
return sessionLocaleResolver;
}
@Bean
public ResourceBundleMessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
messageSource.setUseCodeAsDefaultMessage(true);
return messageSource;
}
}
并像这样在 RestConroller 中使用它:
@RestController
public class ExperimentalControllerImpl implements ExperimentalController{
@Autowired
ResourceBundleMessageSource messageSource;
@Override
public String testI18n(@RequestHeader("Accept-Language") String locale) {
StringBuilder builder = new StringBuilder();
builder.append(messageSource.getMessage(Messages.HELLO, null, new Locale(locale)));
builder.append("\n");
builder.append(messageSource.getMessage(Messages.HOW_ARE_YOU, null, new Locale(locale)));
return builder.toString();
}
}
它工作正常......
但是如何从请求标头中获取区域信息到我的服务层或存储库层?
是否有最佳实践来存储请求发送的语言环境信息,以便我可以在我的服务和存储库中访问它?我认为该值必须是特定于请求/线程的。将其作为方法参数传递给另一层似乎很丑陋。
谢谢来自德国的问候
解决方案
推荐阅读
- php - 使用 PHP 循环 JSON 响应
- python - Python中的SQLLite在UNIQUE Key上抛出操作错误
- azure - 如何在 Azure 上将简单的 .exe 文件作为“SaaS”托管?
- python - 用于检查数据框中是否存在用户输入值的 Python 脚本
- javascript - 无法读取 mailgun-js 中未定义的属性“验证”
- hibernate - HQL - 左侧命名参数
- python - 如何找到不同值的坐标?
- react-native-navigation-v2 - react-native-navigation-v2 disabledOpenGesture和sideMenu的fixedWidth
- java - 如何在评分栏中将双值设置为评分?
- python - 使用 Elasticsearch Logstash 索引日志(使用预处理 Python 脚本)