ApplicationContext扩展国际化

文章对比了BeanFactory和ApplicationContext,并详细介绍了ApplicationContext如何通过MessageSource接口实现国际化功能,包括MessageSource的主要方法、Spring提供的实现以及一个具体的ResourceBundleMessageSource案例。
摘要由CSDN通过智能技术生成

本文内容

BeanFactory对比ApplicationContext

ApplicationContext的扩展能力

国际化

BeanFactory对比ApplicationContext

简单点对比下两者的功能定位:

BeanFactory 提供了管理和操作 bean 的基本功能,为 Spring的IoC 功能提供了底层基础,用于与 Spring 的其他部分以及相关的第三方框架的集成
ApplicationContext 在 BeanFactory 基础上还扩展了其他接口以提供更多面向应用程序框架和企业开发的附加功能。

下表列出了 BeanFactory 和 ApplicationContext 接口和实现提供的功能。
在这里插入图片描述

因为ApplicationContext包含BeanFactory的所有功能,所以通常建议使用它而不是普通的BeanFactory,除非需要完全控制bean处理的场景。
ApplicationContext的扩展能力

上面讨论了org.springframework.beans.factory包提供了管理和操作bean的基本功能,包括以编程的方式。org.springframework.context包添加了ApplicationContext接口,它扩展了BeanFactory接口,此外还扩展了其他接口,以更面向应用程序框架的方式提供额外的功能。

国际化: 通过 MessageSource 接口以 i18n 方式访问消息
通过 ResourceLoader 接口访问资源,例如 URL 和文件
事件发布,即通过使用 ApplicationEventPublisher 接口发布到实现 ApplicationListener 接口的 bean
通过 HierarchicalBeanFactory 接口加载多个(分层)上下文,让每个上下文都专注于一个特定的层,例如应用程序的 Web 层

国际化 MessageSource

ApplicationContext 接口扩展了一个名为 MessageSource 的接口,因此提供了国际化(“i18n”)功能。

MessageSource 接口定义和主要方法如下

public interface MessageSource {
   
    // 获取消息: code消息key args替换内支持{} default默认值 loc语言
	String getMessage(String code, Object[] args, String default, Locale loc);
    String getMessage(String code, Object[] args, Locale loc)
	String getMessage(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值