【初识Spring框架】

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

【初识Spring框架】

🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!

欢迎志同道合的朋友一起加油喔🤺🤺🤺

【初识Spring框架】


目录

1. Spring框架是什么?

2. IOC 容器是什么?

2.1 计算机中的容器

2.2 IOC 容器

2.3 到底什么是控制反转呢?

3. 总结 什么是IOC?  什么是DI?

4. IOC和DI有什么区别? (面试题)

5. Spring 是什么?如何理解 Spring?(面试题)



1. Spring框架是什么?

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

2. IOC 容器是什么?

2.1 计算机中的容器

我们先来谈谈容器是什么,在计算机中的容器,其实和我们日常所说的容器其实是一一回事。

在日常生活中,
书架的可以用来放书、衣柜可以用来放衣服、瓶子可以用来装水,它们都是容器,而容器就是可以用来容纳东西的东西。

在计算机领域中,
List / Map 是一个用来存储数据的容器,Tomcat 是一个放 Web 程序的容器。

2.2 IOC 容器

IOC(Inversion of Control,控制反转)是一种设计原则,而IOC容器则是实现这个原则的工具或框架。

控制反转(IOC)是一种编程思想,它的主要思想是将对象的创建、配置和控制权交由一个专门的组件来完成,而不是由对象本身或使用对象的客户端完成。这个专门的组件在Spring中就是所谓的IOC容器。

IOC容器是Spring框架的核心组成部分,它负责实现控制反转原则。IOC容器负责创建对象,解析和注入依赖,管理对象的生命周期,以及实现对象之间的依赖关系。

简单来说,IOC是一种理念或原则,而IOC容器则是实现这个原则的实体或工具。在Spring中,这个工具就是Spring框架自身。

2.3 到底什么是控制反转呢?

如果我们用一种更通俗的比喻来解释控制反转,那就像是在一个餐厅里就餐。假设你是一个顾客(代码),你想要一份意大利面(依赖的对象)。在没有控制反转的情况下,你需要自己到厨房(代码中)去准备食材、烹饪、然后自己清理。你需要亲自做这一切,而且要做得对。但是如果有一个服务员(IoC容器)在这个过程中帮助你,你只需要坐在桌子前,告诉服务员你想吃什么(声明依赖),然后服务员会帮你准备,你就可以直接享用了。在这个过程中,你并不需要知道意大利面是如何准备的,也不需要自己去清理,你只需要享受你的餐点就可以了。

这就是控制反转的核心概念:你不需要自己创建和管理你需要的对象,你只需要声明你需要什么,然后容器(在这个例子中是服务员)会负责创建和管理这些对象,然后将它们提供给你。这样,你的代码就更专注于实现业务逻辑,而不是处理创建和管理对象的繁琐细节

3. 总结 什么是IOC?  什么是DI?

IOC是"Inversion of Control"(控制反转)的缩写,是面向对象编程中的一种设计原则。这个原因在于,传统的程序设计流程是由主函数调用子函数,而在IOC的设计原则中,这个流程被反转过来,主函数变成被动,等待子函数的调用。

在Spring框架中,IOC主要表现为Dependency Injection(DI,依赖注入)。也就是说,当一个类需要使用另一个类的方法时,不再是自己创建或者查找,而是通过Spring框架来注入需要的类。这样做的好处是降低了类与类之间的耦合性,使得程序更加灵活,代码更易于测试和维护。

举个例子,假设有一个类A,它需要使用类B的方法。在传统的设计中,A需要自己创建B的实例,或者通过某种方式查找到B的实例。但在Spring的IOC原则下,A不需要知道B的任何信息,只需要声明自己需要使用B,Spring框架就会自动将B的实例注入到A中,A直接使用就可以了。

Spring的IOC容器是实现这个原则的核心,它负责创建对象,维护对象之间的关系,以及管理对象的生命周期。当你需要一个对象的时候,只需要向容器请求,容器就会返回一个已经配置好的对象。

DI是"Dependency Injection"的缩写,中文通常翻译为"依赖注入"。它是Spring框架中实现"控制反转"(IOC)原则的一种方式。

依赖注入的基本理念是,一个类不应该自己去创建或查找它所依赖的其他类的实例,而应该由外部(在Spring框架中,通常是Spring的IOC容器)负责这些实例的创建和注入。这样可以将类与类之间的耦合性降低到最低,使得代码更加灵活,更易于测试和维护。

举个例子,假设有一个类A,它需要使用类B的方法。在传统的设计中,A需要自己创建B的实例,或者通过某种方式查找到B的实例。但在依赖注入的设计中,A只需要声明自己需要使用B,Spring框架就会自动将B的实例注入到A中,A直接使用就可以了。

Spring中主要有三种依赖注入的方式:

  1. Setter注入:通过调用对象的setter方法来注入依赖。

  2. 构造方法注入:通过构造器来注入依赖。

  3. 属性注入:直接将依赖注入到字段中。

4. IOC和DI有什么区别? (面试题)

  1. IOC(Inversion of Control,控制反转)是一种设计思想,主要是指创建对象和管理对象之间的依赖关系的控制权由代码本身反转给了容器。IOC是一种更高层次的概念,是一种编程的思想和方法论,可以通过DI,Service Locator模式等方式实现。其主要目的是解耦,将业务代码从环境代码中解耦,使业务代码独立于特定的环境和平台。

  2. DI(Dependency Injection,依赖注入)是实现IOC的一种具体方式,是IOC的一个实现手段。通过DI,容器负责将依赖的对象实例注入到需要它的对象中。对象只需通过声明需要依赖对象,而不必亲自创建或查找。这样的话,代码就不再依赖于特定的类实例,而是依赖于接口或抽象类,从而提高了代码的模块化和可测试性。

简而言之,IOC是一种设计思想,DI是实现IOC的一种方法。在Spring框架中,DI是IOC的主要实现方式。

5. Spring 是什么?如何理解 Spring?(面试题)

Spring 是包含了众多⼯具⽅法的 IoC 容器。Spring 是⼀个 IoC(控制反转)容器,说的是对象的创建和销毁的权利都交给Spring来管理了,它本身又具备了存储对象和获取对象的能力。 

Spring两个最核心的功能:可以将对象(Bean)存入到 Spring (容器)中,也可以从 Spring(容器) 中读取到对象(Bean),以供其他业务使用。

【初识Spring框架】文章来源地址https://www.toymoban.com/news/detail-472461.html

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

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

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

相关文章

  • 【Spring】 ——初识Spring

     Spring学习思维导图(仅供参考),如有需要可以到我的资源自行下载 目录 一、为什么学Spring🍭 官方解释🧁  解释🧁 二、Spring是什么🍭 1、核心特点🧁 Ⅰ、控制反转(IoC)和依赖注入(DI)🍬 2、目标🧁 三、Spring的历史🍭  1、历史由来🧁 2、Spring版本迭代的过程🧁

    2024年02月06日
    浏览(35)
  • 【数据结构】 初识集合框架

    这里博主将简单介绍一下集合框架,想要详细了解的可以点击下方链接进行查看 java集合官方教程 Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。 其主要表现为将多个元素 element 置于一个单元中,用于

    2024年02月13日
    浏览(30)
  • 初识Spring -- Spring入门保姆级教程(一)

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码以及可以在我主页的资源里找到,如果在学

    2024年02月06日
    浏览(73)
  • 【Spring】Spring AOP 初识及实现原理解析

    博主简介:想进大厂的打工人 博主主页: @xyk: 所属专栏: JavaEE进阶   目录 文章目录 一、初识AOP 1.1 什么是AOP? 1.2 AOP的组成 1.2.1 切面(Aspect) 1.2.2 切点(Pointcut) 1.2.3 连接点(Join Point) 1.2.4 通知(Advice) 1.3 AOP的使用场景 二、Srping AOP 实现 2.1 添加Spring AOP 依赖 2.2 定义切

    2024年02月13日
    浏览(25)
  • 初识Spring -- Spring快速入门保姆级教程(一)

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码以及可以在我主页的资源里找到,如果在学

    2024年02月07日
    浏览(30)
  • 初识Spring

    1.Spring官网: 2.官网学习的顺序:先学Spring,再学SpringBoot,然后SpringCloud,Spring Cloud Data Flow。 3.Spring Framework界面: 4.github上的源代码: 5.进入使用说明文档: 主要是根据这个进行学习的。 6.我们用maven创建,所以只需一个pom依赖就可以了。 其maven依赖为: 选这个包,可以帮我们下

    2024年02月02日
    浏览(26)
  • JavaWeb-初识Spring

    Spring简介 Spring项目 Bean管理 基于xml的Bean管理 创建对象 属性注入 基于xml+注解的Bean管理 创建对象 属性注入 基于纯注解的Bean管理 Spring是什么 Spring是于2003 年兴起的一个轻量级的Java的开放源代码的设计层面框架。Spring解决的是业务逻辑层和其他各层的松耦合问题,因此它将面

    2024年02月08日
    浏览(31)
  • 一、初识 Spring MVC

    MVC 是模型(Model),视图(View),控制器(Controller)的简写,是一种软件设计的代码规范,将业务逻辑、数据以及显示完全分离开来。 MVC 并不是一种设计模式,MVC 是一种结构模式。 并且不同的 MVC 之间也是存在着差异的。 Model(模型): 数据模型,提供要展示的数据,因

    2024年02月13日
    浏览(30)
  • spring初识

    1. 首先在网页https://start.spring.io/中进行项目配置  2. 将下载下来的安装包进行解压,并在IDEA中打开项目。  3. 在application.propertie文件中进行数据库连接的相关配置 4. 完善相关代码后进行项目启动 5. 在Chrome浏览器访问8080端口可以访问项目的页面: 127.0.0.1 (本机ip地址) :80

    2024年02月15日
    浏览(31)
  • 【Spring】初识MyBatis (一)

    MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的XML或注解进行配置和原始映射,用以将接口和Java的POJO(Plain Old Java Object,普通Java对象)映射成数据库中的记录,使得Java开

    2024年02月03日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包