IoC(控制反转)详解:Spring 的核心思想
·
目录
1. 什么是 IoC?
IoC(Inversion of Control,控制反转)是一种设计思想,它的核心是:将对象的创建和依赖关系的维护,从程序代码中交给容器来完成。
在传统开发中,对象的控制权掌握在程序员手中;
而在 IoC 模式下,这个控制权被“反转”给了容器。
2. 传统方式 vs IoC 方式
2.1 传统方式(紧耦合)
public class UserService {
private UserDao userDao = new UserDao();
}
问题:
-
类之间强依赖
-
难以替换实现
-
不利于测试和扩展
2.2 IoC 方式(解耦)
public class UserService {
private UserDao userDao;
public UserService(UserDao userDao) {
this.userDao = userDao;
}
}
对象的创建和注入交给 Spring:
@Component
public class UserDao {}
@Service
public class UserService {
@Autowired
private UserDao userDao;
}
3. IoC 的本质是什么?
本质只有一句话:对象不再自己创建依赖,而是被动接收依赖。
这带来了:
-
低耦合
-
高可维护性
-
更易扩展
4. IoC 与 DI 的关系
| 名称 | 含义 |
|---|---|
| IoC | 一种设计思想 |
| DI(Dependency Injection) | IoC 的具体实现方式 |
DI 是手段,IoC 是目的
5. Spring IoC 容器的核心职责
Spring IoC 容器主要做三件事:
-
创建对象(Bean)
-
管理对象生命周期
-
维护对象之间的依赖关系
6. 常见注入方式
-
构造器注入(推荐)
-
Setter 注入
-
字段注入(
@Autowired)
7. IoC 的应用场景
-
Service / Dao 解耦
-
配置驱动开发
-
单元测试(Mock)
-
大型项目模块化设计
8. 一句话总结
IoC 是一种“把对象控制权交给容器”的设计思想,是 Spring 的基石。
更多推荐




所有评论(0)