什么是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中。

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

相关推荐
你的保护色5 小时前
【无标题】
java·服务器·网络
basketball6165 小时前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
淘矿人6 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
小江的记录本6 小时前
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·mysql·spring·面试·职场和发展
来恩10036 小时前
请求转发与响应重定向的使用
java
@杰克成6 小时前
Java学习30
java·开发语言·学习
次元工程师!6 小时前
LangFlow开发(三)—Bundles组件架构设计(3W+字详细讲解)
java·前端·python·低代码·langflow
oddsand18 小时前
Redis网络模型
java·数据库·redis
皮卡祺q8 小时前
【redies0-导论】分布式系统的演进-引进redis原因
java·数据库·redis
roman_日积跬步-终至千里8 小时前
如何分析复杂架构:一套真正能落地的方法
java·开发语言·架构