当前位置: 首页 > news >正文

控制反转(IOC)VS 依赖注入(DI)

控制反转(IOC)VS 依赖注入(DI)

    • 1、控制反转(IOC)
    • 2、依赖注入(DI)
    • 3、关系


💖The Begin💖点点关注,收藏不迷路💖

1、控制反转(IOC)

定义
将对象之间的依赖关系管理交给外部容器(如Spring),而不是在代码中直接创建和维护。

优点

  • 降低耦合度
  • 提高可维护性和可扩展性

Spring实现

通过BeanFactory接口,Spring容器管理bean的创建和依赖关系。


2、依赖注入(DI)

定义
容器在创建对象时,将对象所需的依赖项注入到对象中。

实现方式

  • 构造器注入 :通过构造器传递依赖项。
  • Setter方法注入 :通过setter方法传递依赖项。
  • 接口注入(较少使用):通过实现特定的接口来传递依赖项,但在Spring中通常不使用这种方式。

优点

  • 代码简洁
  • 提高测试性
  • 灵活性高

3、关系

控制反转是目标,依赖注入是实现手段。通过依赖注入,Spring容器实现控制反转。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Go 语言常量 6
  • 反射---Java
  • 达梦数据库的系统视图v$sql_stat
  • Element-UI自学实践
  • 【数据库】MySql深度分页SQL查询优化
  • 前端JS总结(下)之DOM
  • LVS原理——详细介绍
  • dos 常用命令整理
  • 微信小程序的广告变现收益怎么样?
  • 如何高效记录并整理编程学习笔记—笔记工具选择?
  • Windows Server 使用Docke部署挂载问题(安装后无限重启崩溃迁移镜像到D盘打包镜像)
  • SSH、FTP、SFTP相关协议详解
  • Android Framework之Pkms详解
  • fatal: The current branch master has no upstream branch.
  • 【最小生成树】(三) Prim 算法
  • [译] 怎样写一个基础的编译器
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 10个最佳ES6特性 ES7与ES8的特性
  • 2017前端实习生面试总结
  • CSS盒模型深入
  • django开发-定时任务的使用
  • js对象的深浅拷贝
  • JWT究竟是什么呢?
  • MySQL用户中的%到底包不包括localhost?
  • Netty源码解析1-Buffer
  • python_bomb----数据类型总结
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 免费小说阅读小程序
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 思考 CSS 架构
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • linux 淘宝开源监控工具tsar
  • 函数计算新功能-----支持C#函数
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #控制台大学课堂点名问题_课堂随机点名
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • %check_box% in rails :coditions={:has_many , :through}
  • (09)Hive——CTE 公共表达式
  • (11)MSP430F5529 定时器B
  • (152)时序收敛--->(02)时序收敛二
  • (31)对象的克隆
  • (C++17) std算法之执行策略 execution
  • (剑指Offer)面试题34:丑数
  • (六)Flink 窗口计算
  • (四)c52学习之旅-流水LED灯
  • (转)JAVA中的堆栈
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET NPOI导出Excel详解
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET的微型Web框架 Nancy
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @RequestBody与@RequestParam:Spring MVC中的参数接收差异解析