多语言展示
当前在线:587今日阅读:103今日分享:49

国际化使用 MessageSource

国际化使用 MessageSource
工具/原料
1

spring

2

IntelliJ

方法/步骤
1

该 ApplicationContext 接口扩展了一个名为的接口 MessageSource ,因此提供了国际化(“i18n”)功能。Spring还提供了 HierarchicalMessageSource 接口,可以分层次地解析消息。

2

这些接口共同提供了Spring影响消息解析的基础。这些接口上定义的方法包括:

3

当 ApplicationContext 被加载时,它自动搜索 MessageSource 在上下文中定义的bean。bean必须具有名称 messageSource 。

4

如果找到这样的bean,则对前面方法的所有调用都被委托给消息源。如果未找到任何消息源,则 ApplicationContext 尝试查找包含具有相同名称的bean的父级。如果是,它使用该bean作为 MessageSource 。如果 ApplicationContext 找不到任何消息源,DelegatingMessageSource 则实例化为空 以便能够接受对上面定义的方法的调用。

5

春天提供了两种 MessageSource 实现方式, ResourceBundleMessageSource 和StaticMessageSource 。两者都是 HierarchicalMessageSource 为了进行嵌套消息传递而实现的。在 StaticMessageSource 很少使用,但提供了编程的方式向消息源添加消息。

6

以下示例显示ResourceBundleMessageSource :

7

该示例假定您有三个资源包被调用 format , exceptions 并 windows 在类路径中定义。解决消息的任何请求都以JDK标准的方式处理,通过 ResourceBundle 对象解析消息。出于示例的目的,假设上述两个资源包文件的内容如下:

8

下一个示例显示了执行该 MessageSource 功能的程序。请记住,所有 ApplicationContext 实现都是 MessageSource 实现,因此可以强制转换为 MessageSource 接口。

9

总而言之,它 MessageSource 是在一个名为的文件中定义的,该文件 beans.xml 存在于类路径的根目录中。该 messageSource bean定义是指通过它的一些资源包的 basenames 属性。这是在列表中传递的三个文件 basenames 属性存在于你的classpath根目录的文件,被称为 format.properties ,exceptions.properties 和 windows.properties 分别。

推荐信息