写给:


🧭 目录速览

  1. Spring Bean 是啥?和普通 Java 对象有啥区别?
  2. 容器是怎么“认”出它的?
  3. .class 到“可用对象”的完整旅程
  4. 生命周期:11 个阶段一次讲透
  5. 作用域:单例、原型、request、session 的底层实现
  6. 高级特性:条件、延迟、动态注册
  7. 常见坑 & 解决方案
  8. 最佳实践:怎么选作用域?
  9. 未来趋势:Spring 6.x & WebFlux
  10. 一张图总结

1️⃣ Spring Bean 是啥?和普通 Java 对象有啥区别? {#1}

📚 官方文档坐标:

Spring Framework Reference → Core → IoC Container → 1.3. Bean Overview “A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container.” Bean 就是一个被 Spring 全程托管的对象:帮你 new,帮你注入,帮你销毁,一条龙!

对比维度 普通 Java 对象 Spring Bean
创建方式 new User() 容器反射创建
生命周期 手动 new / GC 容器全程托管
依赖注入 手动 setXxx() @Autowired 自动注入
销毁 等待 GC @PreDestroy 回调

一句话:Bean 就是被 Spring “领养”的 Java 对象,吃喝拉撒全管!


2️⃣ 容器是怎么“认”出它的? {#2}