ApplicationContext 六大接口之MessageSource

知识边界

MessageSource家族

衍生点

  • MessageSourceResolvable

MessageSource类图结构

MessageSource.png
MessageSource

解析消息的策略接口,用于消息的参数化和国际化的支持。
Spring提供了两种开箱即用的产品实现。
ResourceBundleMessageSource 建立在ResourceBundle的标准之上。
ReloadableResourceBundleMessageSource 高度可配置,特别是在重新加载消息定义方面。


MessageSource类结构.png
HierarchicalMessageSource

MessageSource的子接口由能够分层解析消息的对象实现。

MessageSourceSupport

messageSource实现的基类,提供了对MessageFormat处理等基础设施的支持,但没有实现messageSource中定义的具体方法。

image.png

基类中提供了MessageFormat的缓存。以及是否使用MessageFormat的开关。

DelegatingMessageSource

如果上下文没有定义自己的MessageSource,则由AbstractApplicationContext用作占位符。不打算在应用程序中直接使用。

DelegatingMessageSource类结构.png
AbstractMessageSource

HierarchicalMessageSource接口的抽象实现类,实现了消息的一般处理。使得实现具体MessageSource变得容易。
子类必须实现抽象的resolveCode方法。


AbstractMessageSource类结构.png
StaticMessageSource

MessageSource 接口的简单实现。它允许程序注册接口,支持基本的国际化。
用于测试而不是在产品系统中使用。


StaticMessageSource类结构.png
AbstractResourceBasedMessageSource

MessageSource基于资源绑定的抽象基类。他的子类有ResourceBundleMessageSource和ReloadableResourceBundleMessageSource,提供了通用的配置方法和语义学的定义。

AbstractResourceBasedMessageSource类结构.png
ResourceBundleMessageSource

此MessageSource缓存被访问的ResourceBundle实例和为每个消息生成的消息格式。它还实现了不使用MessageFormat的无参数消息的呈现,这是AbstractMessageSource基类所支持的。此MessageSource提供的缓存比的ResourceBundle内置缓存快得多。


ResourceBundleMessageSource类结构.png

你可能感兴趣的:(ApplicationContext 六大接口之MessageSource)