Spring容器主要是对IoC设计模式的实现,主要是使⽤容器来统⼀管理Bean对象,及管理对象之间的依赖关系.
创建容器的API主要是BeanFactory和ApplicationContext两种:
1. BeanFactory是最底层的容器接⼝,只提供了最基础的容器功能:Bean 的实例化和依赖注⼊,并且使⽤懒加载的⽅式,这意味着 beans 只有在我们通过 getBean() ⽅法直接调⽤它们时才进⾏实例化。
2. ApplicationContext(应⽤上下⽂)是BeanFactory的⼦接⼝,与 BeanFactory 懒加载的⽅式不
同,它是预加载,所以,每⼀个 bean 都在 ApplicationContext 启动之后实例化。
3. 除了基础功能,还添加了很多增强:
- 整合了Bean的⽣命周期管理
- i18n国际化功能(MessageSource)
- 载⼊多个(有继承关系)上下⽂ ,使得每⼀个上下⽂都专注于⼀个特定的层次,⽐如应⽤的web层
- 事件发布响应机制(ApplicationEventPublisher)
- AOP