什么是依赖注入💉?
微信上有个读者投稿,我一看文章真的是挺不错的,所以在星球里给大家推荐一下,主题叫做:什么是依赖注入💉?
对于 Java 后端开发来说,依赖注入是绕不开的一环,不管是面试中还是日常开发中,基本上都会碰到,希望大家通过这篇内容把依赖注入牢牢地掌握。
这里是读者的 github 地址:https://github.com/dingtingli/
----我们开始
当我们编写 Web 后端代码的时候,会用到这样的代码:
class A {
private IB _b;
public A(IB b){
_b = b;
}
public void MethodA(){
_b.MethodB();
}
}
如果你跟我第一次的感觉相同,可能也会存在这样的困惑:
在 Class A 中没有任何地方 new Class B 的实例,但是运行的时候,MethodA 中的变量 _b 已经是 Class B 的一个实例了,为什么会这样?
今天我们就带着疑问,了解一下依赖注入的来龙去脉。
文章从依赖注入的历史出发,分为三个部分:
- 依赖倒置原则
- 控制反转
- 依赖注入

依赖注入发展历史
1.依赖倒置原则
依赖倒置原则(DIP Dependency Inversion Principle)
在没有依赖注入的情况下,如果 Class A 调用了 Class B 的方法,这就意味着 Class A 依赖于 Class B。换句话说,在编译时 Class A 将取决于 Class B。

直接依赖的编译情况
代码可以这么编写:
class A {
private B b;
public A(){
b = new B();
}
public void MethodA(){
b.MethodB();
}
}
在 90 年代的时候,代码差不多都是这么写的。这样的代码有什么问题吗?
未能定位到原文的划线
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复