这两个接口都属于 Spring IoC 容器体系,但定位不在一个层级。`BeanFactory` 更像最基础的容器能力,`ApplicationContext` 则是在它之上做的企业级扩展。
BeanFactory 提供了什么
它负责最核心的 Bean 获取和依赖管理,是 Spring 容器体系的基础接口。理解 Spring IoC 时,很多底层概念都能追溯到这里。
ApplicationContext 多做了哪些事
它除了具备容器能力,还集成了事件发布、国际化、资源加载、自动注册后处理器等常用能力,日常项目里更常直接使用它。
默认行为有什么差异
很多场景下,`ApplicationContext` 会更积极地初始化单例 Bean,而 `BeanFactory` 更偏按需获取。也正因为如此,两者的使用体验明显不同。
结论
如果把 `BeanFactory` 看成 Spring 容器的底座,`ApplicationContext` 就是更完整、更适合业务项目直接使用的上层实现。
正文完




