Spring IoC(控制反转)的实现机制是Spring框架的核心,其本质是将对象的创建、依赖管理和生命周期控制权从应用程序代码转移到容器中。以下是其核心实现机制:
🔧 一、核心实现步骤
-
配置元数据加载
- 容器启动时读取XML/注解/Java配置类,解析为
BeanDefinition
对象(包含类名、作用域、依赖关系等元数据) - 示例:
<bean id="userService" class="com.example.UserService"/>
或@Service
注解
- 容器启动时读取XML/注解/Java配置类,解析为
-
Bean实例化
- 通过反射调用无参构造器或工厂方法创建原始对象
- 底层依赖
BeanWrapper
封装反射操作
-
依赖注入(DI)
- 注入方式:
- 构造器注入(强制依赖)
- Setter注入(可选依赖)
- 字段注入(
@Autowired
)
- 容器递归解析依赖链,解决循环依赖(三级缓存机制)
- 注入方式:
-
初始化回调
- 执行
Aware
- 执行