提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、ApplicationContext关联接口和类
- 二、Application扩展功能介绍
- 总结
一、ApplicationContext关联接口和类
SpringApplication.run方法返回的上下文为ApplicationContext类型
ApplicationContext继承了BeanFactory接口,控制反转,依赖注入,Bean生命周期管理等基本功能在BeanFactory接口做了定义。
ApplicationContext使用组合的方式利用BeanFactory的功能。
DefaultListableBeanFactory实现了BeanFactory,继承了DefaultSingletonRegistry。DefaultSingletonRegistry使用Map存储管理的单例对象,key为对象名,value为对象引用。
可以使用反射获取容器中的所有单例对象。
- ApplicationContext扩展功能
ApplicationContext相较于BeanFactory的扩展功能来自下图标红的4个接口
MessageSource可以处理国际化资源。
ResourcePatternResolver提供通过匹配符查找资源的能力。
ApplicationEventPublisher用于发布事件。
EnvironmentCapable可以处理环境变量等信息。
二、Application扩展功能介绍
2.1 MessageSource
MessageSource可以处理国际化资源,可以在Resources中配置编码对应的各国语言翻译来实现国际化功能。
2.2 ResourcePatternResolver
ResourcePatternResolver可以获取资源
获取配置信息
2.3 ApplicationEventPublisher
发布UserRegisterdEvent事件
监听事件
总结
ApplicationContext和BeanFactory之间并不仅仅是继承的关系,而且ApplicationContext拥有BeanFactory对象。