什么是Spring IOC

Spring IOC(Inversion of Control)控制反转是将对象的创建权对象之间依赖关系的维护权,从程序员的业务代码中转移到由Spring IOC容器中,程序员就不再手动控制了。

需要说明的是,Spring IOC是一种设计思想 ,不是一个具体的技术 ,Spring IOC 的具体落地实现是通过依赖注入(Dependency Injection) 完成的。

依赖注入的方法有构造器注入setter注入接口注入三种。

那控制反转它控制的是什么呢?

其实就是控制的是对象的创建过程 ,Spring IOC容器会根据配置文件来创建对象。

反转的是什么呢?

反转的是创建对象 并且为这个要创建的对象 注入它所依赖的对象这个动作的主动权

传统开发过程是由程序员主动new一个对象,手动注入依赖,Spring IOC是将这个动作交给容器来自动完成,这样主动权就发生了反转

举个🌰说明一下:

比如对象A依赖对象B,那在创建对象A的代码里,我们就需要写好应该如何创建对象B,只有这样才能创建一个完整的对象A。

但是,反转之后,这个动作就会由Spring IOC容器去触发,容器在创建对象A的时候,发现对象A它依赖对象B,根据配置文件,容器就会创建对象B,然后将对象B注入到对象A中。

这里要注意一下,例子中的是注入一个对象 ,其实还可以注入配置文件中的一个值、集合等等

相关推荐
Moshow郑锴10 小时前
Ubuntu用SDKMAN轻松管理多个Java 版本
java·ubuntu·sdkman
阿昌喜欢吃黄桃10 小时前
RocketMq事务消息原理
java·中间件·消息队列·rocketmq·mq
CoderYanger10 小时前
A.每日一题:2095. 删除链表的中间节点
java·数据结构·程序人生·leetcode·链表·面试·职场和发展
摇滚侠10 小时前
MyBatis+Spring+SpringMVC SSM 整合 179-185
java·spring·mybatis
我不是FD11 小时前
OpenAI vs Anthropic API 对比:流式返回 + Adapt 适配层完整方案
java·人工智能·python
Peter(阿斯拉)11 小时前
[Android]_[中级]_[如何创建MVVM架构原型]
android·java·架构·mvvm·viewmodel
地瓜伯伯11 小时前
从MESI缓存一致性协议讲透synchronized的底层
java·spring boot·spring·spring cloud·微服务·springcloud
Devin~Y11 小时前
大厂 Java 面试实录:从音视频内容社区到 AI RAG 的全链路技术设计
java·spring boot·redis·spring cloud·微服务·kafka·音视频
CoderYanger11 小时前
A.每日一题:3612. 用特殊操作处理字符串 I
java·程序人生·leetcode·面试·职场和发展·学习方法·改行学it
承渊政道11 小时前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程