📦 IoC 容器学习

控制反转 (Inversion of Control) 与依赖注入 (Dependency Injection)

📚 核心概念

什么是 IoC?

控制反转 (Inversion of Control):将对象的创建和管理交给 Spring 容器,而不是由开发者手动创建。

依赖注入 (Dependency Injection):IoC 的一种实现方式,通过构造器、Setter 或字段将依赖注入到对象中。

为什么用 IoC?

  • 解耦:对象之间不直接依赖,通过接口交互
  • 可测试:方便使用 Mock 对象进行单元测试
  • 可维护:集中管理对象生命周期
  • AOP 支持:便于实现切面编程

🔍 查看所有 Bean

Spring 容器中管理的所有 Bean 对象

📊 Bean 作用域

作用域说明使用场景
singleton默认,整个应用只有一个实例无状态的服务、配置类
prototype每次请求都创建新实例有状态的对象
request每个 HTTP 请求一个实例Web 应用
session每个 HTTP 会话一个实例用户会话数据

⚡ 性能统计

实时监控方法执行时间和调用次数

💉 依赖注入方式对比

方式优点缺点推荐度
构造器注入明确依赖、不可变、易测试参数多时代码长⭐⭐⭐⭐⭐
Setter 注入可选依赖、灵活可能为 null⭐⭐⭐
字段注入代码简洁隐藏依赖、难测试