spring的核心容器:ApplicationContext和BeanFactory区别

BeanFactory是一个顶层的接口,它的功能不是那么的完善,目前来说,基本都是用ApplicationContext及其实现类,很少会用BeanFactory及其实现类。

spring的核心容器:ApplicationContext和BeanFactory区别

一 ApplicationContext和BeanFactory的关系

BeanFactory是核心容器的最原始的接口,现在不怎么使用BeanFactor及其实现类了。

ApplicationContext继承了BeanFactory,目前使用最多的是ApplicationContext及其实现类。

二 ApplicationContext和BeanFactory的区别

ApplicationContext: 单例对象适用

采用此接口 它在构建核心容器时,创建对象采取的策略是采用立即加载的方式。也就是说,只要一读取完配置文件马上就创建配置文件中配置的对象。

BeanFactory: 多例对象适用

它在构建核心容器时,创建对象采取的策略是采用延迟加载的方式。也就是说,什么时候根据id获取对象了,什么时候才真正的创建对象。

并且对于适用于单例、多例对象这一点,我们也不用过多考虑,因为spring已经做好了这一点,后面还会有配置bean的作用范围的讲解。