Spring 国际化@Autowired MessageSource 配置文件读取顺序(spring从配置文件读取值给注解)

  本篇文章为你整理了Spring 国际化@Autowired MessageSource 配置文件读取顺序(spring从配置文件读取值给注解)的详细内容,包含有spring读取配置文件yml spring从配置文件读取值给注解 spring读取配置文件 value方法实例 spring读取配置文件中文乱码 Spring 国际化@Autowired MessageSource 配置文件读取顺序,希望能帮助你了解 Spring 国际化@Autowired MessageSource 配置文件读取顺序。

   // 遍历循环配置文件basename集合.

   for (String baseName : Arrays.asList("spring.messages.basename")){

   * 根据 locale 遍历父级的locale对象,

   * {@link ResourceBundle.Control.CandidateListCache#createObject(sun.util.locale.BaseLocale)}

   * {@link ResourceBundle.Control.CandidateListCache#getDefaultList(java.lang.String, java.lang.String, java.lang.String, java.lang.String)}

   * 当父级遍历完毕, 设置当前locale对象为系统默认locale对象.

   * {@link ResourceBundleMessageSource#resolveCodeWithoutArguments(java.lang.String, java.util.Locale)}

   for (String locale : Arrays.asList("locale", "parentLocale", "defaultLocale", "defaultParentLocale")) {

   // 如果当前keySet集合存在该元素则返回对应数据并结束遍历.

   if (ResourceBundle.getBundle(baseName, Locale.forLanguageTag(locale)).keySet().contains("目标读取key")) {

   return ResourceBundle.getBundle(baseName, Locale.forLanguageTag(locale)).getString("目标读取key");

   return "默认值";

  

 

 

  

spring.messages.basename=i18n/messages,other,messages

 

  当前配置文件:

  resources/i18n/messages.properties

  resources/i18n/messages_en.properties

  resources/i18n/messages_ja_JP.properties

  resources/i18n/messages_zh.properties

  resources/i18n/messages_zh_CN.properties

  resources/messages.properties

  resources/messages_en.properties

  resources/messages_ja_JP.properties

  resources/messages_zh.properties

  resources/messages_zh_CN.properties

  resources/other.properties

  resources/other_en.properties

  resources/other_ja_JP.properties

  resources/other_zh.properties

  resources/other_zh_CN.properties

  en-US读取配置顺序:i18n/messages_en_US.properties

  en-US读取配置顺序:i18n/messages_en.properties

  en-US读取配置顺序:i18n/messages_zh_CN.properties

  en-US读取配置顺序:i18n/messages_zh.properties

  en-US读取配置顺序:i18n/messages.properties

  en-US读取配置顺序:other_en_US.properties

  en-US读取配置顺序:other_en.properties

  en-US读取配置顺序:other_zh_CN.properties

  en-US读取配置顺序:other_zh.properties

  en-US读取配置顺序:other.properties

  en-US读取配置顺序:messages_en_US.properties

  en-US读取配置顺序:messages_en.properties

  en-US读取配置顺序:messages_zh_CN.properties

  en-US读取配置顺序:messages_zh.properties

  en-US读取配置顺序:messages.properties

  
ja读取配置顺序:i18n/messages_ja.properties

  ja读取配置顺序:i18n/messages_zh_CN.properties

  ja读取配置顺序:i18n/messages_zh.properties

  ja读取配置顺序:i18n/messages.properties

  ja读取配置顺序:other_ja.properties

  ja读取配置顺序:other_zh_CN.properties

  ja读取配置顺序:other_zh.properties

  ja读取配置顺序:other.properties

  ja读取配置顺序:messages_ja.properties

  ja读取配置顺序:messages_zh_CN.properties

  ja读取配置顺序:messages_zh.properties

  ja读取配置顺序:messages.properties```

  

 

  遍历basename源代码: org.springframework.context.support.ResourceBundleMessageSource#resolveCodeWithoutArguments

  当前baseName获取不到对应的bundle 则根据默认的locale进行取值.

  

填充locale的父级locale源代码: java.util.ResourceBundle.Control.CandidateListCache#getDefaultList

 

  以上就是Spring 国际化@Autowired MessageSource 配置文件读取顺序(spring从配置文件读取值给注解)的详细内容,想要了解更多 Spring 国际化@Autowired MessageSource 配置文件读取顺序的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: