导读
概述
实例
注意事项
Spring-国际化信息01-基础知识
Spring-国际化信息02-MessageSource接口
Spring-国际化信息03-容器级的国际化信息资源
我们查看ApplicationContext中的源码可以看到
ApplicationContext 实现了 MessageSource 接口。
在一般情况下,国际化信息资源应该是容器级。我们一般不会将MessageSource作为一个Bean注入到其他的Bean中,相反MessageSource作为容器的基础设施向容器中所有的Bean开放。
国际化信息一般在系统输出信息时使用,如Spring MVC的页面标签,控制器Controller等,不同的模块都可能通过这些组件访问国际化信息,因此Spring就将国际化消息作为容器的公共基础设施对所有组件开放。
Spring根据反射机制从BeanDefinitionRegistry中找出名称为“messageSource”且类型为org.springframework.context.MessageSource的Bean,将这个Bean定义的信息资源加载为容器级的国际化信息资源.
代码已托管到Github—> https://github.com/yangshangwei/SpringMaster

资源文件
配置文件
测试类
运行结果:
MessageSource Bean名字必须命名为“messageSource”,以上代码将抛出NoSuchMessageException异常
假设我们将id=”messageSource” 改为 id=”messageSource1”
再此运行