75、Springboot 常用的功能(国际化,异常处理............)

Springboot 国际化的使用

1.1、在resources类路径下创建i18n 文件夹,然后里面创建 message.properties  message_zh_CN.properties  message_en_US.properties 资源文件

 

 

 1.2、在application.yml配置文件中添加国际化的配置参数

spring:
  messages:
    basename: i18n.message

1.3、创建一个工具类 I8nMessageUtil用于获取国际化的信息

@Component
public class I8nMessageUtil {

    @Autowired
    private MessageSource messageSource;

    public String getMessage(String code, String... args) {
        return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
    }
}

1.4、在Controller类型做测试 这种是通过浏览器 设置语言切换

@Autowired
private MessageSource messageSource; //注入messageSource

message = messageSource.getMessage("dict.query.success",null,LocaleContextHolder.getLocale());

1.5、自定义切换语言  英文:http://localhost:8042/dict/list/1/10?locale=en_US  中文:http://localhost:8042/dict/list/1/10?locale=zh_CN

1.6、创建  WebMvcConfig 进行自定义配置

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    //添加语言切换拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LocaleChangeInterceptor()).addPathPatterns("/**");

    }
    //使用cookie存储本地语言
    // http://localhost:8042/dict/list/1/10?locale=en_US http://localhost:8042/dict/list/1/10?locale=zh_CN
    @Bean
    public LocaleResolver localeResolver() {
        CookieLocaleResolver localeResolver = new CookieLocaleResolver();
        localeResolver.setCookieMaxAge(60*60*24*30);
        localeResolver.setCookieName("locale");
        return localeResolver;
    }
}

1.7、在Controller类型做测试 这是自定义设置语言切换

 @Autowired
 private I8nMessageUtil i8nMessageUtil; //注入工具类
 String message = i8nMessageUtil.getMessage("dict.query.success", null); //测试获取语言信息

 

posted @ 2022-07-03 14:06  shunnWcs  阅读(329)  评论(0)    收藏  举报