通俗讲:Spring 里的 Bean 到底是什么?

一句话总结:

Bean 就是由 Spring 容器创建、管理、组装的普通 Java 对象。

你不用自己 new 对象,Spring 帮你 new、帮你存、帮你用,这就是 Bean。


1. 最直白的比喻

Spring 容器 当成一个 工厂/仓库
Bean 当成 工厂生产出来的零件/工具

  • 你不用自己造工具(不用 new 对象)
  • 工厂(Spring)帮你造好、放好(创建 + 管理)
  • 你要用的时候直接拿(依赖注入)
  • 工厂统一管理生命周期(创建 → 初始化 → 使用 → 销毁)

所有被 Spring 管理的对象,都叫 Bean。


2. 代码里长什么样?

随便一个加了 @Controller / @Service / @Component / @Repository 的类,
Spring 一启动,就会自动把它变成 Bean。

// 加个注解 → 变成 Bean
@Service
public class UserService {
    // ...
}

等价于:

// 传统写法:你自己 new
UserService userService = new UserService();

// Spring 写法:Spring 帮你 new 成 Bean,你直接用
@Autowired
private UserService userService;

3. Bean 的核心特点(必须记住)

  1. 由 Spring 创建:不用自己 new
  2. 由 Spring 管理:生命周期 Spring 控制
  3. 单例为主:默认一个类只创建一个 Bean(全局共用)
  4. 可以互相注入:A Bean 想用 B Bean,直接 @Autowired 拿来用
  5. 统一初始化、销毁:就是你刚才问的 @PostConstructCommandLineRunner 那套流程

4. 哪些东西会变成 Bean?

  • @Controller(控制器)
  • @Service(业务逻辑)
  • @Repository(数据库操作)
  • @Component(通用组件)
  • @Configuration(配置类)
  • @Bean 标注的方法返回对象
  • 还有框架自带的各种对象(数据源、事务管理器、RedisTemplate 等)

只要被 Spring 接管的对象,全是 Bean。


5. 一句话终极总结

Bean = Spring 容器里的 Java 对象。
不用你手动创建,Spring 帮你管到底。


总结

  • Bean:被 Spring 管理的 Java 对象
  • Spring 容器:管理所有 Bean 的工厂
  • 核心作用:解耦、统一管理、自动注入、方便扩展
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐