Spring框架核心与设计思想

这篇具有很好参考价值的文章主要介绍了Spring框架核心与设计思想。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring框架核心与设计思想

一、Spring是什么?

我们一般所说的Spring指的是Spring Framework(Spring 框架),它是一个开源的框架,Spring支持广泛的应用场景,它可以让Java企业级的应用程序开发变得更简单,官方一点的回答:spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,mybatis框架等组合使用。
Spring框架核心与设计思想
上述是官方的回答,可以用一句话概括Spring:Spring是包含众多工具方法的IoC容器

二、什么是IoC容器?

容器是什么?
容器是可以用来存取某种物品的装置,我们之前学过一些容器:List/Stack/Map(数据存储容器),Tomcat(Web容器)

什么是IOC?

Spring也是一个容器,那么Spring是什么容器呢? Spring是一个IoC容器 ,那么我们首先得弄清楚什么是IoC了?
IoC(Inversion of Control):IoC是一种思想,控制反转,也就是说Spring是一个控制反转的容器。
Spring框架核心与设计思想
比如我们的A依赖B,于是我们需要在A中去new B对象,此时我们的A控制着B的生命周期,也可以说A控制着B,这样的耦合性过高,IoC的思想就是将这个控制权交给其他人,至于其他人是谁我不管,当我需要B时传给我即可。
我们现在有这样一个需求,构建一辆车(Car),而车依赖于车身(FrameWork),车身需要依赖地盘(Bottom),地盘需要依赖于轮胎(Tire)
Spring框架核心与设计思想
这样的代码有什么问题呢? 层层依赖,上述程序中我们轮毂大小是写死的,如果我需要加工不同的轮毂,我们不仅需要对Tire进行修改,因为Bottom依赖Tire所以Bootom也需要修改,FrameWork依赖于Bootom所以FrameWork也需要修改,Car依赖于FrameWork所以Car也需要修改。
Spring框架核心与设计思想

我们可以看出来,这种模式的代码当最底层的代码改动之后,整个调用链上的所有代码都需要修改。
我们只需要将原来由自己创建下级类,改为传递的方式(注入),因为我们不需要自己去创建下级类了,所以即使下级类发生了变化,当前类也不需要修改,这样程序就能进行解耦
Spring框架核心与设计思想Spring框架核心与设计思想
代码经过以上调整,无论底层类如何变化,整个调用链是不用做任何改变的,这样就完成了代码之间的解耦,从而实现了更加灵活、通用的程序设计了。

传统与改进之间的对比:
在传统的代码中对象创建顺序是:Car -> Framework -> Bottom -> Tire
改进之后解耦的代码的对象创建顺序是:Tire -> Bottom -> Framework -> Car
Spring框架核心与设计思想
我们可以发现,传统的代码类创建顺序是反着的,Car控制FrameWork,FrameWork控制着Bottom,Bottom控制着Tire。而改进之后的控制器发生了反转,是下层将对象注入到当前类中,下级的控制权不再由上级控制了,下级在发生改变时上次时不受影响的,这就是IoC的实现思想

Spring IoC

Spring是一个包含众多工具方法的IoC容器,它具备两个最基础的功能:
1.将对象存入到容器(将对象存入到Spring)
2.从容器中取出对象(从Spring中获取对象)

将对象存放到容器有什么好处呢?
将容易存储到IoC容器相当于我们将所有可能用到的工具制作好都放到仓库,当我们需要时直接取即可,用完归还仓库。new对象的方式相当于我们每次需要用工具的时候现场制作,制作完了扔掉,下次需要的时候重新做。

Spring是一个IoC容器,说的是对象的创建和销毁的权力都交给了Spring来管理,本身又具有存储对象和获取对象的能力
优点:
1.解耦
2.使用更加方便(不用手动去new和关注对象的依赖关系)
3.更加高效

三、DI

DI(Dependency Injection):依赖注入,IoC运行期间,动态的将关系注入到对象之中。
传统方式(手动new):
Spring框架核心与设计思想
依赖注入:
Spring框架核心与设计思想
这里大家还没有学注解不用关系,只需要知道是IoC容器主动将依赖B注入到对象A中。

IoC(控制反转) 和 DI(依赖注入)是从不同的角度去描述同一件事情,IoC是一种思想,而DI是具体的实现技术

总结

Spring是什么?
Spring是包含众多工具方法的IoC容器

Spring最核心的功能是什么?
Spring既然是一个IoC容器,那么它有两个主要的功能:
1.将Bean对象存储到Spring容器
2.从Spring容器中获取Bean对象

IoC和DI是什么?有什么区别?
Ioc(Inversion of Control),把创建对象的权利交给容器,对象的实例不再由调用者来创建,而是由容器来创建,容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移带了容器,控制权发生了反转,这就是控制反转。它是spring框架的核心思想之一。
DI(Dependency Injection),当某个java 实例需要另一个java实例时,创建被调用者的工作不是由调用者实现,而是由spring容器来完成,然后注入调用者,因此称为依赖注入。

区别:
IoC(控制反转) 和 DI(依赖注入)是从不同的角度去描述同一件事情,IoC是一种思想,而DI是具体的实现技术文章来源地址https://www.toymoban.com/news/detail-414622.html

到了这里,关于Spring框架核心与设计思想的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring】核心与设计思想

     哈喽,哈喽,大家好~ 我是你们的老朋友: 保护小周ღ   谈起Java 圈子里的框架,最年长最耀眼的莫过于 Spring 框架啦,如今已成为最流行、最广泛使用的Java开发框架之一。不知道大家有没有在使用 Spring 框架的时候思考过这些问题, 什么是框架?Spring 是什么?如何理解

    2024年02月08日
    浏览(42)
  • 【Spring】(一)Spring设计核心思想

    Spring 是一个开源的轻量级 Java 框架,旨在简化 Java 应用程序的开发。它提供了一个全面的编程和配置模型,用于构建各种类型的应用,包括企业级应用和独立的 Java 应用。 Spring 的设计理念是基于依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming),使得应

    2024年02月14日
    浏览(42)
  • 【Spring】学习Spring需要掌握的核心设计思想

    目录 一、Spring是什么 二、什么是IoC容器 1、什么是容器 2、什么是IoC   3、Spring IoC 4、DI(依赖注入) 4.1、IoC和DI的区别 5、 DL(依赖查找) 我们通常所说的Spring指的是Spring Framework(Framework的意思就是框架),它是一个开源的框架,有着庞大的社区,这就是它之所以能长久不

    2024年02月14日
    浏览(58)
  • 【JavaEE进阶】Spring核心与设计思想

    我们通常所说的 Spring 指的是 Spring Framework (Spring 框架),它是一个轻量级的 Java 开源框架,有着活跃庞⼤的社区。Spring 是为了解决企业应用开发的复杂性而创建的,不仅⽀持⼴泛的应⽤场景,还让 Java 企业级的应⽤程序开发更加简单。 如何简单地使⽤⼀句话概括 Spring:

    2024年02月13日
    浏览(47)
  • 【JavaEE进阶】——第二节.Spring核心和设计思想

    文章目录 前言 一、Spring是什么? 二、什么是容器? 三、什么是IoC? 3.1 初始loC 3.2 举例解释loC 3.3 Spring IoC思想的体现 四、什么是DI? 4.1DI的概念 4.2 Ioc和DI的区别 总结 今天我们将进入到有关spring的认识当中,要使用它的前提就是要认识并熟悉它,上一节我们介绍了有关mave

    2023年04月18日
    浏览(40)
  • 【开源与项目实战:开源实战】84 | 开源实战四(上):剖析Spring框架中蕴含的经典设计思想或原则

    在 Java 世界里,Spring 框架已经几乎成为项目开发的必备框架。作为如此优秀和受欢迎的开源项目,它是我们源码阅读的首选材料之一,不管是设计思想,还是代码实现,都有很多值得我们学习的地方。接下来,我们就详细讲讲 Spring 框架中蕴含的设计思想、原则和模式。因为

    2024年02月12日
    浏览(43)
  • 敏捷设计的的4个核心思想

    来自《互联网产品之美》。 4个核心思想 1、强调面对面的沟通,也就是说沟通很重要,任何人的相互交流胜于任何流程和工具; 2、要把精力集中在可执行的程序上,可以运行的产品胜于综合性文档,也就是强调了原型、模型、演示等的重要性; 3、团队合作和团队激励,合

    2024年02月09日
    浏览(48)
  • 【JavaEE进阶】 Spring核⼼与设计思想

    我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单。 ⽤⼀句话概括 Spring: Spring 是包含了众多⼯具⽅法的 I

    2024年02月04日
    浏览(43)
  • 一文带你了解QT Model/View框架的设计思想和实现机制

    目录 1、QT Model/View框架简介 1.1、QT Model/View是什么? 1.2、QT Model/View框架核心思想 1.3、Model/View框架工作机制 1.4、Model/View框架的类 2、Model 2.1模型简介 2.2、模型索引 2.3、数据角色 2.4、QStringListModel 2.5、QFileSystemModel 2.6、QSortFilterProxyModel 3、View 4、Delegate 5、项选择模型 5.1、QIt

    2024年02月05日
    浏览(89)
  • 二十四种设计模式与六大设计原则(三):【装饰模式、迭代器模式、组合模式、观察者模式、责任链模式、访问者模式】的定义、举例说明、核心思想、适用场景和优缺点

    接上次博客:二十四种设计模式与六大设计原则(二):【门面模式、适配器模式、模板方法模式、建造者模式、桥梁模式、命令模式】的定义、举例说明、核心思想、适用场景和优缺点-CSDN博客 目录 装饰模式【Decorator Pattern】 定义 举例说明 核心思想 适用场景 优缺点 迭代

    2024年04月17日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包