SpringBoot国际化配置分析

本文详细介绍了SpringBoot实现国际化的过程,包括通过LocaleResolver解析客户端的Locale,利用MessageSource接口查找消息,以及如何配置StaticMessageSource和ResourceBundleMessageSource。在实际应用中,通常使用ResourceBundleMessageSource结合国际化属性文件来加载消息,简化后的Controller代码可以进一步减少手动获取Locale的步骤。
摘要由CSDN通过智能技术生成

DispatcherServlet使得开发人员可以通过客户端的Locale来自动转换消息进行国际化;在整个国际化的过程中,主要分成两步,一是解析客户端的Locale,一是查找国际化的消息;

1. 解析Locale

解析Locale是通过LocaleResolver来完成的。

当有请求时,DispatcherServlet查找LocaleResolver类型的Bean,如果找到,则使用它获取并设置Locale。在这之后,通过RequestContext.getLocale方法则可以获取到Locale。

Spring默认在i18n包中提供了几种实现,如通过Cookie、Header、Session等方式来获取Locale的实现等。

1.1 定义所使用的LocaleResolver:

Spring Boot中可以通过Bean注解来定义所使用的LocaleResolver

@Configuration
public class AdditionalBeanConfig {
   
    @Bean
    public LocaleResolver getLocalResolver() {
        return new CookieLocaleResolver();
    }
}

默认情况下,SpringBoot中是没有包含LocaleResolver对象的。

1.2 获取Locale

如果需要在应用中获取当前客户端所使在的Locale,在Controller中通过以下方式查找Locale:

@RestController
@RequestMapping("/test")
public class TestController {
   
    @GetMapping("/locale")
    public String locale(HttpServletRequest request) {
        // 第一种方式,通过构建RequestContext来查找Locale
        RequestContext requestContext = new RequestCon
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值