我在springboot中学习了一些国际化教程。
(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;
}
}
把它用在这个地方:
@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();
}
}
很好用。。。。。
但是如何从请求头到服务层或存储库层获取区域设置信息呢?
是否有最佳实践来存储请求发送的区域设置信息,以便我可以在我的服务和存储库中访问它?我认为该值必须是请求/线程特定的。把它作为方法参数下放到另一层看起来很难看。
谢谢德国的问候
暂无答案!
目前还没有任何答案,快来回答吧!