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

推荐订阅源

MyScale Blog
MyScale Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
博客园 - 叶小钗
A
About on SuperTechFans
Last Week in AI
Last Week in AI
量子位
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
T
The Blog of Author Tim Ferriss
Vercel News
Vercel News
博客园 - 司徒正美
博客园 - Franky
博客园 - 【当耐特】
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
J
Java Code Geeks

博客园 - 咸着的鱼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() 方法实现,也可以通过构造方法注入,也可以混合使用。