Spring--Spring国际化

Posted jazon@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring--Spring国际化相关的知识,希望对你有一定的参考价值。

Spring国际化接口

  • 核心接口: org.springframework.context.MessageSource
  • 主要概念: 1.文案模板编码code 2.文案模板参数args 3.区域Locale

层次性MessageSource

Spring国际化的实现类都是层次性的,具体接口如下

  • Spring层次化国际化接口: org.springframework.context.HierarchicalMessageSrouce

Java国际化标准实现

  • 抽象实现-java.util.ResourceBundle
  • Properties资源实现- java.util.PropertyResourceBundle
  • 例举实现-java.util.ListResourceBundle

ResourceBundler核心特性

  • Key-Value设计
  • 层次性设计
  • 缓存设计
  • 字符编码控制
  • ControlSPI扩展

Java文本格式化

  • 核心接口: java.text.MessageFormat
  • 基本用法:
// 设置消息格式模式
MessageFormat msgFormat = new MessageFormat("1 is 0")
msgFormat.format(new Object[]...)

  • 消息格式模式
可选地,格式化参数的类型以及风格
格式元素: ArgumentIndex(,FormatType,(FormatStyle))
FormatType:消息格式类型,可选项,每种类型在number,date,time和choice类型选其一
FormatStype:消息格式风格,可选项,包括: shrot,medium,long,full,integer,currency,percent

MessageSource开箱即用实现

  • 基于ResourceBundler+MessageFormat组合的MessageSource实现

org.springframework.context.support.ResourceBundleMessageSource

  • 可重载Properties+MessageFormat组合的MessageSource实现

org.springframework.context.support.ReloadableResourceBundleMessageSource

MessageSource内建依赖

  • MessageSource内建Bean可能来源
  • 预注册Bean名称为messageSource,类型为MessageSourceBean
  • 默认内建实现-DelegatingMessageSource,如果已存在messageSource,则直接使用已有的

SpringBooot为什么要新建MessageSource Bean

  • AbstractApplicationContext的实现决定了MessageSource的内建实现,通过已存在bean可以替换。
  • SpringBoot通过外部化配置简化MessageSourceBean构建

以上是关于Spring--Spring国际化的主要内容,如果未能解决你的问题,请参考以下文章

Spring框架系列 - Spring和Spring框架组成

Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC

学习笔记——Spring简介;Spring搭建步骤;Spring的特性;Spring中getBean三种方式;Spring中的标签

Spring--Spring入门

深度解析Spring源码编译Spring源码(spring5.2.x版本)

Spring:Spring介绍