如何理解IoC和DI?(小知识)

IOC就是控制反转,通俗的说就是我们不用自己创建实例对象,这些都交给Spring的bean工厂帮我们创建管理。这也是Spring的核心思想,通过面向接口编程的方式来是实现对业务组件的动态依赖。这就意味着IOC是Spring针对解决程序耦合而存在的。在实际应用中,Spring通过配置文件(xml或者properties)指定需要实例化的java类(类名的完整字符串),包括这些java类的一组初始化值,通过加载读取配置文件,用Spring提供的方法(getBean())就可以获取到我们想要的根据指定配置进行初始化的实例对象。

  • 优点:IOC或依赖注入减少了应用程序的代码量。它使得应用程序的测试很简单,因为在单元测试中不再需要单例或JNDI查找机制。简单的实现以及较少的干扰机制使得松耦合得以实现。IOC容器支持勤性单例及延迟加载服务。

DI:DI---Dependency Injection,即"依赖注入":组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。

相关推荐
慧海灵舟19 分钟前
阿里 AgenUI 开源库前后端实战教程 —— Day 2:后端接入 Spring AI Alibaba & 鸿蒙端引入 AgenUI
人工智能·spring·开源·写文章,赢小鸿ai
在繁华处2 小时前
Java从零到熟练(十一):Spring框架入门
java·开发语言·spring
鱼鳞_4 小时前
苍穹外卖-Day10(Spring task)
java·后端·spring
轮子飞了5 小时前
记一次 Spring AI Alibaba + 百炼的踩坑:结构化输出与联网搜索的冲突
人工智能·python·spring
lee_curry5 小时前
tomcat+springmvc+spring源码流通过程
java·spring·tomcat·springmvc
小马爱打代码5 小时前
Spring框架:介绍和快速入门
java·后端·spring
霸道流氓气质6 小时前
Spring AI Alibaba + Ollama Function Calling 项目完整指南
人工智能·windows·spring
星轨zb7 小时前
从通用到专属:文迹(WenJi)引入 RAG 向量库的技术复盘
java·spring·langchain4j
架构源启8 小时前
Spring AI进阶系列(14)- 2026 可观测性最佳实践:从链路追踪到企业级 AI 治理落地
java·人工智能·spring
椰椰椰耶8 小时前
[SpringCloud][12]Nacos配置中心详解,快速上手,Nacos和Eureka的区别
spring·spring cloud·eureka