Spring初识(一)

一.Spring 是什么?

首先我们来看看官网的解释
Spring 使每个人都可以更快、更轻松、更安全地进行 Java 编程。Spring 对速度、简单性和生产力的关注使其成为 世界上最受欢迎的 Java框架。
在这里插入图片描述
这里我简单的说明一下什么是spring?
我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单.
⽤⼀句话概括 Spring:Spring 是包含了众多⼯具⽅法的 IoC 容器。
接下来我们将解释这两个概念.
1.什么是容器
2.什么是Ioc

1.1 什么是容器

如果解释容器的概念的话.
百度百科给出生活中的概念,用来容纳某种物品的基本装置
在这里插入图片描述
其实我们在开发阶段中,就已经遇到过了,例如:
List/Map -> 数据存储容器
Tomcat -> web容器

1.2 什么是Ioc?

loC = Inversion of Control翻译成中文是“控制反转”的意思,也就是说Spring是一个“控制反转”的容器,怎么理解这句话呢,我们先从以下示例开始。
我会用一个例子,来解释这个Ioc机制.

1.2.1传统式开发

假如,我们现在构建一辆“车”的程序,我们的实现思路是这样的:
在这里插入图片描述
代码如下:

在这里插入图片描述

1.2.2 控制反转式程序开发

现在我们构建一辆车的思路是这样的.
在这里插入图片描述
具体代码如下:
在这里插入图片描述
在这里插入图片描述

我们来做一个总结.

在这里插入图片描述
经过这样一个流程,我们知道IoC不是一个具体的技术,它是一个思想。
用另外的一个话题说,我们做的一切操作都像是解耦操作一样,大家细细去体会就知道了.

1.3 什么spring Ioc

回到我们的主题Spring,本文刚开始咱们就讲:Spring 是包含了多个工具方法的 loC容器,这就是对Spring最核心的总结。“集成多个工具方法”这事咱们以后慢慢再讲,那如何理解"Spring是一个loC容器”这句话呢?

既然Spring 是一个 loC(控制反转)容器,重点还在“容器”二字上,那么它就具备两个最基础的功能:

  • 将对象存入到容器;
  • 从容器中取出对象。

也就是说学Spring 最核心的功能,就是学如何将对象存入到Spring 中,再从 Spring 中获取对象的过程。

Spring 是⼀个 IoC 容器,说的是对象的创建和销毁的权利都交给 Spring 来管理了,它本身⼜具备了存储对象和获取对象的能⼒。
优点:
1.解耦
2.使用更加方便(不再需要手动创建,和关注这个对象背后的依赖关系)A->B
3.更加高效

1.4 DI 概念说明

Dependency Injection的缩写 依赖注入
所谓依赖注⼊,就是由 IoC 容器在运⾏期间,动态地将某种依赖关系注⼊到对象之中。所以,依赖注⼊(DI)和控制反转(IoC)是从不同的⻆度的描述的同⼀件事情,就是指通过引⼊ IoC 容器,利⽤依赖关系注⼊的⽅式,实现对象之间的解耦.
当然我们还是说人话来解释一下:
将依赖的某个对象注入到当前类当中的这个行为就叫做依赖注入。

总结

ioC是“目标”也是一种思想,而目标和思想只是一种指导原则,最终还是要有可行的落地方案,而DI就属于具体的实现。
比如说我今天心情比较好,吃一顿好的犒劳犒劳自己,那么“吃一顿好的”是思想和目标(是loC) ,但最后我是吃海底捞还是杨国福?这就是具体的实现,就是 DI,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/42287.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

以太网(Ethernet)入门了解

以太网(Ethernet)是一种常见的局域网(LAN)通信协议,它是由Xerox公司于1970年代中期开发的。以太网是一种基于广播技术的开放式网络协议,它允许设备在共享通信介质上进行通信。以下是关于以太网的基本概念、…

usb转网口转换器经常自动断网

问题: 最近使用一个usb转网口的扩展坞,发现和其它机器通信时,经常会自动断网。 原因: 和设备的电源管理策略有关,USB设备的“允许计算机自动关闭此设备以节约电源”选项默认是选中的,而网络设备的此选项默…

音视频开发实战03-FFmpeg命令行工具移植

一,背景 作为一个音视频开发者,在日常工作中经常会使用ffmpeg 命令来做很多事比如转码ffmpeg -y -i test.mov -g 150 -s 1280x720 -codec libx265 -r 25 test_h265.mp4 ,水平翻转视频:ffmpeg -i src.mp4 -vf hflip -acodec copy …

AtcoderABC244场

A - Last LetterA - Last Letter 题目大意 给定一个长度为N的字符串S,由小写英文字母组成,打印出S的最后一个字符。 思路分析 题目要求打印出字符串S的最后一个字符,可以直接通过访问S的最后一个元素来获取该字符。可以使用字符串的back()…

Meta发布升级大模型LLaMA 2:开源可商用

论文地址:https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/ Github地址:https://github.com/facebookresearch/llama LLaMA 2介绍 Meta之前发布自了半开源的大模型LLaMA,自从LLaMA发布以来…

Apikit 自学日记:如何测试多个关联的 API

肯定会有人好奇,如果有多个关联的 API 如何做测试呢?很简单!在 APIkit 中也有测试多个关联 API 的功能。 1、在流程测试用例详情页中,点击“ 添加测试步骤”,选择“从API文档添加API请求” 2、在对应的项目下选择关联的…

STL好难(8):map和set

目录 1.一些概念的理解 🍉关联式容器和序列式容器 🍉key模型、key/value模型 🍉树形结构关联式容器 2.set的介绍 🍉set文档 🍉set的使用 🍒set的模板参数列表 🍒set的构造 &#x1f3…

从制造到智造,安捷利的云数蝶变

伴随着新一轮科技革命和产业变革的兴起,制造业的数字化转型步入深水区,尤其是在5G、工业互联网、大数据等为代表的新技术推动下,制造业全方位、全链条的升级已是大势所趋。 南沙地处中国的南大门,既是国家面向世界的重要战略平台…

python和django中安装mysqlclient失败的解决方案

在Pychram中和pip中安装mysqlclient都不成功,只能直接下载二进制包进行安装了,下载页面中根据python的版本选择对应WHL包下载,下载地址 mysqlclient PyPIhttps://pypi.org/project/mysqlclient/#files 通过pip命令进行安装 pip install d:\…

传输网络介绍

文章目录 1、通信传输介质有哪些?2、通信网络常见的组网形式有哪些?3、光纤通信常用的复用技术是哪两种?4、SDH的复用技术是什么?5、灰光和彩光的区别在哪里?6、波长的计算公式?7、5G时代,承载网…

esp32-cam红外实时监控报警系统(巴发云和邮箱同时推送)

esp32-cam红外实时监控报警系统 设想-巴发云转折-照片数量限制代码避开巴发云照片限制邮箱的坑同时我的巴发云微信也受到了提醒报警,虽然没有图片显示。 设想-巴发云 我想做一个人体红外传感器发现人体报警,同时给我手机发报警提醒,同时发送…

​​Layui之用户管理实例(对数据的增删改查)

目录 ​编辑一、R工具介绍() ​编辑二、数据表的增删改查 ​编辑2.1我们先得从查询数据库的语句入手 2.2优化dao类 2.4UserAction类 2.5前台的页面实现增删改查操作 2.6 userManage页面JS 2.7user新增、修改iframe层js 前言 上一篇我分享了…

【图像处理OpenCV(C++版)】——5.6 图像平滑之联合双边滤波

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

Orleans 微软基于 Actor 的分布式框架

一、Actor模型工作原理 Actor模型是一种并发编程模型,它基于消息传递实现,是一种轻量级的并发模型。在Actor模型中,每个Actor都是一个独立的执行单元,它可以接收和发送消息,并且可以执行一些本地操作,但是不…

Internet Download Manager IDM 破解版 中文便携版 v6.41.15

Internet Download Manager 介绍 Internet Download Manager,全球最佳下载利器。Internet Download Manager (简称IDM) 是一款Windows 平台功能强大的多线程下载工具,国外非常受欢迎。支持断点续传,支持嗅探视频音频,接管所有浏览…

【Python爬虫开发基础⑭】Scrapy架构(组件介绍、架构组成和工作原理)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: ⭐️前面比较重要的基础内容: 【Python爬…

【ArcGIS Pro微课1000例】0028:绘制酒店分布热力图(POI数据)

本文讲解在ArcGIS Pro中文版中,基于长沙市酒店宾馆分布矢量点数据(POI数据)绘制酒店分布热力图。 文章目录 一、加载酒店分布数据二、绘制热度图参考阅读: 【GeoDa实用技巧100例】004:绘制长沙市宾馆热度图 【ArcGIS微课1000例】0070:制作宾馆酒店分布热度热力图 一、加载…

从0到1构建证券行业组织级项目管理体系的探索与实践︱东吴证券PMO负责人娄鹏呈

东吴证券股份有限公司信息技术总部PMO负责人娄鹏呈先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:从0到1构建证券行业组织级项目管理体系的探索与实践。大会将于8月12-13日在北京举办,敬请关注! 议题简要&a…

联通 Flink 实时计算平台化运维实践

摘要:本文整理自联通数科实时计算团队负责人、Apache StreamPark Committer 穆纯进在 Flink Forward Asia 2022 平台建设专场的分享,本篇内容主要分为四个部分: 实时计算平台背景介绍 Flink 实时作业运维挑战 基于 StreamPark 一体化管理 …

力扣题目解析:生成奇数个字符的字符串的巧妙方法

本篇博客会讲解力扣“1374. 生成每种字符都是奇数个的字符串”的解题思路,这是题目链接。 这道题的解题思路很巧妙,它利用了字符串长度n的奇偶性: 如果n是奇数,那么就把字符串全部填充为’a’,这样每种字符都是奇数个…