BeanFactory
是Spring的早期接口,称为Spring的Bean工厂,ApplicationContext
是后期更高级接口,称之为Spring容器ApplicationContext
在BeanFactory
基础上对功能进行了扩展,例如:监听功能、国际化功能等。BeanFactory
的API更偏向底层,ApplicationContext
的API大多数是对这些底层API的封装- Bean创建的主要逻辑和功能都被封装在
BeanFactory
中,ApplicationContext
不仅继承了BeanFactory
,而且ApplicationContext
内部还维护着BeanFactory
的引用,所以,ApplicatioContext
与BeanFactory
既有继承关系,,又有融合关系 - Bean的初始化时机不同,原始
BeanFactory
是在首次用getBean时才进行Bean的创建,而ApplicationContext
则是配置文件加载,容器一创建就将Bean都实例化并初始化好