什么是 Spring IOC 容器?
更多面试题请看这里:https://interview.raoyunsoft.com/
面试题专栏会持续更新欢迎关注订阅
Spring IOC(控制反转)容器是 Spring 框架的核心引擎,它负责创建、装配和管理应用中的所有对象(这些对象称为 Bean)。通过将对象的创建和依赖管理权从开发者手中转移到容器,实现了代码的解耦和灵活性。
核心职责
-
对象创建
自动实例化 Bean 对象,无需手动new操作:// 传统方式:开发者主动创建对象 UserService userService = new UserServiceImpl();// IOC 方式:容器创建对象 @Autowired UserService userService; // 容器注入实例 -
依赖注入(DI)
自动解决对象间的依赖关系: -
生命周期管理
控制 Bean 的完整生命周期:- 初始化回调(
@PostConstruct) - 销毁回调(
@PreDestroy) - 作用域管理(单例/原型/请求/会话)
- 初始化回调(
-
配置管理
支持多种配置方式:- XML 配置(传统)
- 注解(
@Component,@Bean) - Java Config(现代主流)
核心优势
| 特性 | 传统编程 | Spring IOC |
|---|---|---|
| 对象创建 | 开发者手动 new | 容器自动实例化 |
| 依赖管理 | 硬编码依赖 | 自动注入依赖 |
| 耦合度 | 高耦合 | 低耦合 |
| 可测试性 | 难模拟依赖 | 轻松 Mock 测试 |
容器类型
- BeanFactory
基础容器,提供基本 DI 功能(适合资源受限环境) - ApplicationContext
企业级容器(推荐使用),扩展功能包括:- 国际化支持
- 事件发布机制
- AOP 集成
- 资源加载抽象
场景示例:电商系统中,
OrderService依赖PaymentService。IOC 容器会自动创建这两个对象,并将PaymentService实例注入到OrderService,无需开发者手动关联。
