# 📦 IoC 生命周期可视化实验室

把“类加载”“Bean 创建”“单例/多例/懒加载”拆开看，自己动手触发、自己观察结果。

🧪 实验任务卡

- 先点“加载总览”，搞清楚 JVM 类加载 和 Spring Bean 生命周期不是一回事
- 再点“比较三种作用域”，对比 singleton / prototype / lazy singleton 的实例 ID 和 hashCode
- 然后分别连续点击“获取单例 / 获取多例 / 获取懒加载单例”，观察时间线变化
- 最后重置时间线，再重新做一遍，看看第一次触发和第二次触发的区别

### 📚 核心概念总览

点击按钮查看“类加载 vs Bean 生命周期”...

### 🆚 作用域对比实验

观察重点：singleton 两次获取是否同一实例？prototype 为什么每次都变？lazy singleton 第一次获取前是否就已经创建？

### 🎯 单点触发实验

点击上面的按钮，观察实例 ID / hashCode / 访问次数如何变化...

### 🕰️ 生命周期时间线

时间线加载中...

### 📊 Bean 作用域解释

作用域 | 创建时机 | 实例特点
--- | --- | ---
singleton | 通常容器启动时 | 全局一个实例，反复获取同一个对象
prototype | 每次 getBean 时 | 每次都是新实例，不进单例池
lazy singleton | 第一次真正使用时 | 启动不创建，首次获取才创建，之后复用

#### 记住这句话

类加载 ≠ Bean 创建；Bean 创建 ≠ 每次请求都 new。

### 🔍 查看所有 Bean