Spring基础与核心概念

Spring是一个Java应用程序框架,提供了IoC(控制反转)容器,管理对象的生命周期。IoC意味着对象的创建和管理由Spring容器负责,降低了代码间的耦合。DI(依赖注入)是IoC的一种实现方式,通过容器动态地将依赖关系注入到对象中,实现对象解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Spring 是什么?

1.什么是容器?

2.什么是Ioc容器

3.DI概念说明

4. 面试:IoC 和 DI 有什么区别?


Spring 是什么?

我们通过百度百科可以知道:

Spring 指的是 Spring Framework(Spring 框架),用于构建企业级Java应用程序。它提供了一种全面的编程和配置模型,用于开发现代化的、灵活的、可扩展的Java应用程序。
我们可以用一句话来总结: Spring 是包含了众多工具方法的 IoC 容器

1.什么是容器?

容器是⽤来容纳某种物品的(基本)装置。 ——来⾃:百度百科

对比到前面的知识点,   目前接触到的容器有

  • List / Map -->  数据存储容器
  • Tomcat  -->  Web 容器

我们说到Spring是一个包含了众多工具方法的Ioc容器,那Ioc又是什么呢?

2.什么是Ioc容器

IoC = Inversion of Control 翻译成中⽂是“控制反转”的意思,也就是说 Spring 是⼀个“控制反转”的容器

IOC就是对生命周期的托管,控制反转

当我们使用A类引用B类,B类引用C类,C类引用D类时

在A类引用B类时直接new它时直接new的话就有一个问题,当B类的构造方法发生变化的时候,整个调用链都要发生变化

当我们不在new它的时候,而是把对象传入进来

这个时候虽然我的整个调用链还是A类引用B类,B类引用C类,C类引用D类

但是当我的D类发生变化的时候,我的整个调用链C类,B类,A类是不需要任何的代码的跟改的,从而降低了代码的耦合性这就是IOC,这就是它的优势和特点

即("控制反转":之前的控制权是在我身上,现在反转了,也就是我把控制权交出去了,交给框架了,下次我再要用X的时候,直接告诉框架,我要用X,而现在的X的生命周期和我没啥关系)

我们也可以说:Spring就是个容器,用来帮忙管理对象的生命周期的

Spring IoC 容器最核心的功能:

  1. 将 Bean (对象) 存储到 Spring (容器) 中
  2. 将 Bean (对象) 从 Spring (容器) 中取出
也就是说 学 Spring 最核⼼的功能,就是学如何将对象存⼊到 Spring 中,再从 Spring 中获取对象的过程。
Spring 是⼀个 IoC 容器,说的是对象的创建和销毁的权利都交给 Spring 来管理了,它本身⼜具备了存 储对象和获取对象的能力。

3.DI概念说明

说到IoC 就要提到 "DI", DI 是 Dependency Injection 的缩写,翻译过来就是 "依赖注入" 的意思

依赖:比如说A类中,需要用到B类,那就说A依赖B

注入:将一个东西拿过来用就叫做注入

合起来"依赖注入"的意思就是: 在 IoC 容器在运行期间,动态的将某种依赖关系注入到对象中.

依赖注入的角度就是,通过引用 IoC 容器,利用依赖关系注入的方式,实现对象之间的解耦,所以DI 是一种实现

4. 面试:IoC 和 DI 有什么区别?

从广义上来讲:IOC和DI是同一个东西的(IOC=DI),从不同的维度来描述同一个问题的

但是具体来说:IOC是一个设计思路, DI是一个具体的实现技术,两者从狭义上来说是不同的

比如说我今天心情比较好,吃一顿好的犒劳犒劳自己,那么“吃一顿好的”是思想和目标(是loC),但最后我是吃海底捞还是杨国福?这就是具体的实现,就是 DI。

IoC 是一种思想: 控制反转

DI 是一种实现  : 依赖注入 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆腐乾净找方规

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值