spring引导:如何访问服务或存储库层中的set locale

93ze6v8z  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(156)

我在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();
    }

}

很好用。。。。。
但是如何从请求头到服务层或存储库层获取区域设置信息呢?
是否有最佳实践来存储请求发送的区域设置信息,以便我可以在我的服务和存储库中访问它?我认为该值必须是请求/线程特定的。把它作为方法参数下放到另一层看起来很难看。
谢谢德国的问候

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题