一、初始化方式不同
- BeanFactory是延迟初始化的,它是调用getBean()方法时,才会初始化Bean,
- ApplicationContext在容器启动时就进行初始化
二、Bean的作用不同
- BeanFactory只支持单例和原型作用域
- ApplicationContext支持多种作用域,单例(Singleton)、原型(Prototype)、请求(Request)、会话(Session)
三、Bean的生命周期不同
- BeanFactory只负责实例化和管理bean
- ApplicationContext在Bean实例化之后,负责完成Bean的依赖注入、Aop代理、事件发布等
四、功能不同
- BeanFactory只有Bean的基本管理功能
- ApplicationContext还有其他高级功能,资源绑定、消息传递、事务管理