惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
博客园 - 【当耐特】
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
B
Blog RSS Feed
腾讯CDC
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
GbyAI
GbyAI
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
DataBreaches.Net
The Cloudflare Blog
V
V2EX
S
SegmentFault 最新的问题

博客园 - 咸着的鱼25

环境才是 Agent 的核心基础设施 OpenCode + OpenSpec + Oh-My-OpenCode 联合 SDD/ATDD 开发指南 AI 驱动开发工作流:OpenCode + Oh-My-OpenCode + SDD + ATDD 在线服务数据压缩算法比较 延迟深度链接 搭建wiki系统后端存储-来自大模型 广告投放名词 面试题1 c++ 代码技巧 c++ 性能分析 粗排治理之性能优化 MMR 算法优化 core 基本操作 聊天室开发心得 Docker 学习笔记 Airflow 使用简介 lua转换etcd应答 修改系统参数 https学习笔记 openresty: nginx worker不同请求之间共享数据
java spring IoC原理
咸着的鱼25 · 2025-10-15 · via 博客园 - 咸着的鱼25
新接手的服务,是用java sping实现的,后面要学习掌握java和sping开发了。

IoC原理

IoC全称 Inversion of Control,控制反转。又被称为依赖注入 DI,Dependency Injection。解决的主要问题是将组件的创建和配置,与组件的使用相分离。由 IoC容器负责管理组件的生命周期。
如果一个系统有大量的组件,其生命周期和相互之间的依赖关系,如果由组件或程序自身来维护,会增加系统的复杂度,导致组件之间高度耦合,给测试和维护带来极大的困难。
核心问题:

  1. 谁负责创建组件
  2. 谁负责根据依赖关系组装组件
  3. 销毁时,如何按照依赖顺序正确销毁

传统应用程序

控制权在程序本身,也就是由开发者控制。一个组件如果使用另外一个组件,需要在这个组件内创建使用。

IoC 模式

控制权由应用程序转移到 IoC 容器,所有组件由容器负责创建、配置、注入。这样,组件不需要关注依赖组件是如何初始化、读取配置、创建的,不同组件也可以共享同一个依赖组件。

依赖注入可以通过 set() 方法实现,也可以通过构造方法注入,也可以混合使用。