第十二章 Spring 国际化(i18n)

Spring 国际化使用场景

  • 普通国际化文案
  • Bean Validation 校验国际化文案
  • Web 站点页面渲染
  • Web MVC 错误消息提示

Spring 国际化接口

核心接口

  • org.springframework.context.MessageSource

主要概念

  • 文案模板编码(code)
  • 文案模板参数(args)
  • 区域(Locale)

层次性 MessageSource

Spring 层次性接口回顾

  • org.springframework.beans.factory.HierarchicalBeanFactory
  • org.springframework.context.ApplicationContext
  • org.springframework.beans.factory.config.BeanDefinition

Spring 层次性国际化接口

  • org.springframework.context.HierarchicalMessageSource

Java 国际化标准实现

核心接口

抽象实现 - java.util.ResourceBundle

Properties 资源实现 - java.util.PropertyResourceBundle

例举实现 - java.util.ListResourceBundle

Java 国际化标准实现

ResourceBundle 核心特性

  • Key-Value 设计
  • 层次性设计
  • 缓存设计
  • 字符编码控制 - java.util.ResourceBundle.Control(@since 1.6)
  • Control SPI 扩展 - java.util.spi.ResourceBundleControlProvider(@since 1.8)

Java 文本格式化

核心接口

  • java.text.MessageFormat

基本用法

  • 设置消息格式模式- new MessageFormat(…)
  • 格式化 - format(new Object[]{…})
  • 消息格式模式
  • 格式元素:{ArgumentIndex (,FormatType,(FormatStyle))}
  • FormatType:消息格式类型,可选项,每种类型在 number、date、time 和 choice 类型选其一
  • FormatStyle:消息格式风格,可选项,包括:short、medium、long、full、integer、currency、percent

高级特性

  • 重置消息格式模式
  • 重置 java.util.Locale
  • 重置 java.text.Format

MessageSource 开箱即用实现

基于 ResourceBundle + MessageFormat 组合 MessageSource 实现

  • org.springframework.context.support.ResourceBundleMessageSource

可重载 Properties + MessageFormat 组合 MessageSource 实现

  • org.springframework.context.support.ReloadableResourceBundleMessageSource

MessageSource 內建依赖

MessageSource 內建 Bean 可能来源

  • 预注册 Bean 名称为:“messageSource”,类型为:MessageSource Bean
  • 默认內建实现 - DelegatingMessageSource
  • 层次性查找 MessageSource 对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值