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构建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值