第一章 容器与Bean
1.容器与接口
1. BeanFactory 接口
典型功能有:getBean
2. ApplicationContext 接口
是 BeanFactory 的子接口。它扩展了 BeanFactory 接口的功能,如:
* 国际化
* 通配符方式获取一组 Resource 资源
* 整合 Environment 环境(能通过它获取各种来源的配置信息)
* 事件发布与监听,实现组件之间的解耦
3.BeanFactory 与 ApplicationContext 的区别
-
到底什么是 BeanFactory
- 它是 ApplicationContext 的父接口
- 它才是 Spring 的核心容器, 主要的 ApplicationContext 实现都【组合】了它的功能,【组合】是指 ApplicationContext 的一个重要成员变量就是 BeanFactory
-
BeanFactory 能干点啥
- 表面上只有 getBean
- 实际上控制反转、基本的依赖注入、直至 Bean 的生命周期的各种功能,都由它的实现类提供
- 例子中通过反射查看了它的成员变量 singletonObjects,内部包含了所有的单例 bean
-
ApplicationContext 比 BeanFactory 多点啥
- ApplicationContext 组合并扩展了 BeanFactory 的功能
- 国际化、通配符方式获取一组 Resource 资源、整合 Environment 环境、事件发布与监听
- 新学一种代码之间解耦途径,事件解耦