Spring容器与Bean Factory是什么?二者位置及功能解析
关于Spring容器与Bean Factory的极简说明
1. Bean Factory 是什么
- 定义:它是Spring体系里最底层的IoC容器根接口,是所有Spring容器的基础原型。
- 所在位置:属于Spring核心包的
org.springframework.beans.factory路径下,是一个纯接口,有多种具体实现类。 - 核心功能:只负责最基础的Bean管理——创建、存储、提供Bean实例,采用懒加载模式:只有当你主动获取某个Bean时,它才会实例化该Bean,没有额外扩展功能,就是个极简的Bean管家。
2. Spring容器(ApplicationContext)是什么
- 定义:它是Bean Factory的增强扩展实现,是日常开发中实际使用最多的Spring容器,可以理解为“升级款Bean管家”。
- 所在位置:属于
org.springframework.context包下,常见的实现类比如ClassPathXmlApplicationContext(加载XML配置的容器)、AnnotationConfigApplicationContext(基于注解配置的容器)都属于它的范畴。 - 核心功能:在Bean Factory的基础上,新增了一堆实用特性:自动扫描并注册Bean、支持事件发布与监听、国际化资源加载、兼容多种配置方式(XML/注解/Properties),采用预加载模式:容器启动时就会初始化所有单例Bean,不用等调用才创建。
3. 一句话快速区分
- Bean Factory:极简版IoC容器,仅做Bean基础管理,适合资源紧张的场景(比如嵌入式设备)
- Spring容器(ApplicationContext):增强版IoC容器,是Bean Factory的功能超集,日常开发直接用它即可
内容的提问来源于stack exchange,提问作者Eva
相关产品推荐
相关产品推荐

