理解 Spring 中的 Bean:Spring 应用的支柱

发布: (2025年12月29日 GMT+8 22:31)
3 min read
原文: Dev.to

Source: Dev.to

什么是 Spring Bean?

Spring Bean 是一个 由 Spring IoC(控制反转)容器创建、配置并管理的对象。通俗地说:

  • Spring 为你创建对象
  • Spring 管理它们的依赖
  • Spring 控制它们的生命周期

Bean 构成了 Spring 应用的核心构件,整个应用本质上是相互连接的 Bean 集合。

Spring 中如何定义 Bean?

使用立体注解(Stereotype Annotations)

常用的立体注解:

  • @Component – 通用组件
  • @Service – 业务逻辑层
  • @Repository – 数据访问层
  • @Controller – Web 控制层

这些注解告诉 Spring:“这个类应该由 IoC 容器管理。”

使用配置类显式声明 Bean

  • 类上使用 @Configuration 注解。
  • 类内部的方法以编程方式定义 Bean,例如:
@Configuration
public class AppConfig {

    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

这种方式在需要自定义创建和配置 Bean 时提供了更大的控制权。

Spring Bean 生命周期

Bean 生命周期阶段

  1. Bean 已创建 – 实例化对象。
  2. 依赖注入 – 注入依赖。
  3. Bean 已初始化 – 调用任何初始化回调。
  4. Bean 被使用 – Bean 已准备好供应用使用。
  5. Bean 已销毁 – 在移除前执行销毁回调。

Bean 生命周期钩子

  • @PostConstruct – 在依赖注入完成后调用的方法。
  • @PreDestroy – 在 Bean 从容器中移除前调用的方法。

Spring Bean 的作用域

常见 Bean 作用域

  • singleton(默认) – 每个 Spring 容器只有一个共享实例。
  • prototype – 每次请求 Bean 时都会创建一个新实例。
  • request – 每个 HTTP 请求对应一个实例(Web 环境)。
  • websocket – 每个 WebSocket 会话对应一个实例。

了解作用域很重要,因为它直接影响内存使用、性能以及应用行为。

为什么 Bean 很重要

  • 依赖注入 – 促进松耦合。
  • 清晰的架构 – 明确分离关注点。
  • 可测试且易维护 – Bean 可以在测试中轻松模拟或替换。

一旦 Bean 的概念清晰,理解其他 Spring 特性就会变得容易得多。

Back to Blog

相关文章

阅读更多 »

Spring Cloud Gateway:基础示例

Spring Cloud Gateway:基础示例的封面图片 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fd...