Spring-两种配置容器
Spring提供了两种容器类型
SpringIOC容器是一个IOC Service Provider。提供了两种容器类型:BeanFactory和ApplicationContext。Spring的IOC容器是一个提供IOC支持的轻量级容器。除了基本的ioc支持,它作为轻量级容器还提供了IOC之外的支持。
BeanFactory
BeanFactory是基础类型IOC容器。顾名思义,就是生产Bean的工厂。能够提供完整的IOC服务。没有特殊指定的话,其默认采用延迟初始化策略。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该对象进行初始化和依赖注入操作。因此,相对来说,容器启动初期的时候速度是比较快的。所需要的资源有限。所以,对资源有限,并且功能要求不是很严格的场景,BeanFactory是比较合适的IOC容器
ApplicationContext
ApplicationContext是在BeanFactory的基础上边构建的,是相对比较高级的容器的实现,除了拥有BeanFactory的所有支持,ApplicationContext还提供了其他的高级特性。例如事件发布、国际化信息支持等。ApplicationContext所管理的对象,在该类型容器启动之后,默认全部初始化并绑定完成。相对于BeanFactory来说,ApplicationContext会要求更多的系统资源。因为在启动时就完成了所有的初始化,容器启动的时间与BeanFactory相比会长一些。因此,ApplicationContext更适用于系统资源充足,并且要求更多功能的场景中。
ApplicationContext间接继承自BeanFactory,所以说它是构建与BeanFactory之上的IOC容器。
本博客参考自王福强的《Spring揭秘》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理