Spring Boot 中的依赖注入:Spring 如何为你自动装配所有内容

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

Source: Dev.to

Spring Boot 中依赖注入的封面图:Spring 为你注入一切

什么是依赖注入?

依赖注入(DI) 是 Spring Boot 中使用的一种设计模式,用来实现组件之间的 松耦合

通俗来说:类 不自己创建依赖,而是由外部提供这些依赖——在 Spring Boot 中,这一职责由 Spring IoC 容器 负责。这样可以让应用 更简洁、更灵活、更易于维护

用一个简单例子理解 DI

设想:

  • Alice 需要 Frosting(糖霜)和 Syrup(糖浆)来烤蛋糕。
  • Alice 不自己创建 Frosting 或 Syrup。

相反,Frosting 和 Syrup 是 从外部注入 到 Alice 中的。这正是 依赖注入 在 Spring 中的工作方式。

Spring Boot 中的依赖注入

  • 对象被称为 Bean
  • Bean 由 IoC 容器 管理。
  • 依赖在运行时 自动注入

这样,一个类只需要关注自己的 业务逻辑,而不必关心依赖的创建。

依赖注入的好处

松耦合

组件不依赖具体实现,使得应用更易于维护和扩展。

灵活的配置

依赖可以在外部配置,轻松替换而无需修改代码。

提升可测试性

在测试时可以对依赖进行 mock 或替换,从而实现可靠且独立的单元测试。

在 Spring Boot 中注入依赖的方式

1. 构造函数注入

通过类的构造函数提供依赖。

为什么推荐这种方式:

  • 确保所需依赖一定可用。
  • 鼓励不可变性。
  • 便于测试。

这是在实际 Spring Boot 项目中 推荐的做法

2. 字段注入

使用 @Autowired 直接将依赖注入到类的字段中。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MyService {

    @Autowired
    private MyRepository repository;

    // ...
}

虽然写法简洁,但字段注入会:

  • 隐藏依赖。
  • 增加测试难度。
  • 不推荐 在生产环境中使用。

为什么依赖注入在真实项目中很重要

没有 DI:

  • 代码耦合紧密。
  • 变更会影响多个类。
  • 测试困难。

有了 DI:

  • 应用模块化。
  • 代码干净且易于维护。
  • 系统更易扩展。

依赖注入是构建清晰 Spring Boot 架构的基石。

结语

掌握 依赖注入 是学习 Spring Boot 的关键里程碑。弄清 DI 后,BeanIoC 容器 以及 Spring 注解等概念就会变得通俗易懂。

Back to Blog

相关文章

阅读更多 »

让我们分离分离

简介 在2025年最后几天,我们的团队负责人额外请了一天假,错过了一个重要会议。最近的重组后,一位同事离职……