当前位置: 首页 > news >正文

Spring6:1 概述

Spring6:1 概述

标签

  • JAVA
  • Spring

在这里插入图片描述

目录

  1. Spring 是什么?
  2. Spring 的狭义和广义
    • 广义的 Spring:Spring 技术栈
    • 狭义的 Spring:Spring Framework
  3. Spring Framework 特点
  4. Spring 模块组成
  5. Spring6 特点
    • 版本要求
    • 本课程软件版本

1. 概述

1.1 Spring 是什么?

Spring 是一款主流的 Java EE 轻量级开源框架,由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。
Spring 的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。

自 2004 年 4 月发布 Spring 1.0 版本以来,Spring 已经发展到第 6 个大版本,本课程采用当前最新版本 6.0.2

在这里插入图片描述


1.2 Spring 的狭义和广义

广义的 Spring:Spring 技术栈

广义上的 Spring 泛指以 Spring Framework 为核心的 Spring 技术栈。
Spring 包含多个子项目,如 Spring MVC、Spring Boot、Spring Cloud 等,涵盖企业级开发到云计算等领域,为开发人员提供一站式解决方案。

狭义的 Spring:Spring Framework

狭义上的 Spring 特指 Spring Framework,它是一个分层的轻量级解决方案,是 Spring 技术栈的核心与基础。
Spring 核心模块包括:

  • IoC(控制反转):将对象的创建过程交由 Spring 管理。
  • AOP(面向切面编程):封装公共逻辑,减少代码冗余。

1.3 Spring Framework 特点

  • 非侵入式:对应用程序的结构影响小,保持代码清洁优雅。
  • 控制反转(IoC):通过注入机制简化资源管理。
  • 面向切面编程(AOP):增强代码功能而无需修改源代码。
  • 容器化:管理组件对象的生命周期,提升开发效率。
  • 组件化:通过 XML 或注解配置,简化复杂应用的构建。
  • 一站式:整合企业应用框架和第三方库,全面满足开发需求。

1.4 Spring 模块组成

官网地址:https://spring.io/

Spring Modules
Spring Modules

Spring 模块包括:

  1. Spring Core(核心容器):提供 IoC 和 DI 的核心实现。
  2. Spring AOP:实现面向切面编程的功能。
  3. Spring Data Access:提供 JDBC 和 ORM 的支持。
  4. Spring Web:支持基础 Web 开发到 WebFlux 的非阻塞式框架。
  5. Spring Messaging:支持消息传递功能。
  6. Spring Test:封装 JUnit 集成测试支持。

1.5 Spring6 特点

1.5.1 版本要求
  • Spring6 要求最低 JDK 版本为 JDK 17。

在这里插入图片描述

1.5.2 本课程软件版本
  • IDEA:2022.1.2
  • JDK:Java 17
  • Spring:6.0.2

相关文章:

Spring6:1 概述

Spring6:1 概述 标签 JAVASpring 目录 Spring 是什么?Spring 的狭义和广义 广义的 Spring:Spring 技术栈狭义的 Spring:Spring Framework Spring Framework 特点Spring 模块组成Spring6 特点 版本要求本课程软件版本 1. 概述 …...

Python Selenium 各浏览器驱动下载与配置使用(详细流程)

1、安装 pip install selenium 2、浏览器驱动下载 Chrome(google)浏览器驱动 下载地址:http://chromedriver.storage.googleapis.com/index.html 或 https://sites.google.com/a/chromium.org/chromedriver/home . 下载地址:http://chromedriver.stor…...

C语言期末考试——重点考点

目录 1.C语言的结构 2.三种循环结构 3.逻辑真假判断 4. printf函数 5. 强制类型转化 6. 多分支选择结构 7. 标识符的定义 8. 三目运算符 1.C语言的结构 选择结构、顺序结构、循环结构 2.三种循环结构 for、while、do-while 3.逻辑真假判断 C语言用0表示false,用非0(不…...

mongo开启慢日志及常用命令行操作、数据备份

mongo开启慢日志及常用命令行操作、数据备份 1.常用命令行操作2.mongo备份3.通过命令临时开启慢日志记录4.通过修改配置开启慢日志记录 1.常用命令行操作 连接命令行 格式:mongo -u用户名 -p密码 --host 主机地址 --port 端口号 库名; 如:连…...

Mybatis-Plus的主要API

一、实体类操作相关API BaseMapper<T>接口 功能&#xff1a;这是 MyBatis - Plus 为每个实体类对应的 Mapper 接口提供的基础接口。它提供了一系列基本的 CRUD&#xff08;增删改查&#xff09;操作方法。例如insert(T entity)方法用于插入一条记录&#xff0c;d…...

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别 一、背景 财务数据是指企业经营活动和财务结果的数据记录&#xff0c;反映了企业的财务状况 与经营成果。对行业、企业的财务数据进行分析&#xff0c;就是要评价其过去的经营业绩、 衡量现在的财务状况、预测…...

【SpringMVC】参数传递 重定向与转发 REST风格

文章目录 参数传递重定向与转发REST风格 参数传递 ModelAndView&#xff1a;包含视图信息和模型数据信息 public ModelAndView index1(){// 返回页面ModelAndView modelAndView new ModelAndView("视图名");// 或// ModelAndView modelAndView new ModelAndView(…...

性能测试需求分析(超详细总结)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、客户方提出 客户方能提出明确的性能需求&#xff0c;说明对方很重视性能测试&#xff0c;这样的企业一般是金融、电信、银行、医疗器械等&#xff1b;他们…...

显卡(Graphics Processing Unit,GPU)架构详细解读

显卡架构主要分为两大类&#xff1a;GPU 核心架构&#xff08;也称为图形处理单元架构&#xff09;和显卡的其他组件&#xff08;如内存、控制器、输出接口等&#xff09;。本篇文章将对显卡架构进行详细分析&#xff0c;重点介绍 GPU 核心架构、显卡计算单元、显存结构、显卡管…...

【大语言模型】ACL2024论文-24 图像化歧义:Winograd Schema 挑战的视觉转变

【大语言模型】ACL2024论文-24 图像化歧义&#xff1a;Winograd Schema 挑战的视觉转变 目录 文章目录 【大语言模型】ACL2024论文-24 图像化歧义&#xff1a;Winograd Schema 挑战的视觉转变目录摘要研究背景问题与挑战如何解决核心创新点算法模型实验效果&#xff08;包含重要…...

AcWing 2868. 子串分值

文章目录 前言代码思路 前言 还是实力不允许啊&#xff0c;要是实力允许我就一道一道中等题刷了。简单题真够呛。有些题看题解都是看老半天看不懂&#xff0c;假设是这种我是真感觉没必要钻研。我现在大三&#xff0c;要是看一遍题解看不懂就算了&#xff0c;果断放弃。真可以…...

如何进行 JavaScript 性能优化?

要进行 JavaScript 性能优化&#xff0c;我们可以从多个角度进行思考&#xff0c;主要包括减少页面渲染时间、减少内存占用、优化代码执行效率等。以下是优化的一些方法&#xff0c;并结合实际项目代码示例讲解。 目录结构 减少 DOM 操作 缓存 DOM 元素批量更新 DOM 优化 Jav…...

使用TCP编程实现简单登录功能

在Java中&#xff0c;使用TCP编程实现登录功能通常涉及以下步骤&#xff1a; 创建服务器端&#xff0c;监听特定端口&#xff0c;等待客户端连接。创建客户端&#xff0c;连接到服务器端。客户端发送用户名和密码到服务器端。服务器端验证用户名和密码。服务器端返回验证结果给…...

卷积神经网络(CNN)的层次结构

卷积神经网络&#xff08;CNN&#xff09;是一种以其处理图像和视频数据的能力而闻名的深度学习模型&#xff0c;其基本结构通常包括以下几个层次&#xff0c;每个层次都有其特定的功能和作用&#xff1a; 1. 输入层&#xff08;Input Layer&#xff09;&#xff1a; 卷积神经网…...

操作系统文件管理相关习题2

文件管理的任务和功能文件管理 任务&#xff1a;对用户文件和系统文件进行组织管理&#xff0c;以方便用户使用&#xff0c;并保证文件的安全 功能&#xff1a;文件存储空间的管理&#xff0c;目录管理&#xff0c;文件读写管理和保护 目录管理 对目录管理的要求 实现按名存…...

react 通过ref调用子组件的方法

背景 父组件内引入了一个弹窗组件&#xff0c;弹窗组件使用了完全内聚的开发方法&#xff1b; 实现思路 父组件内通过ref获取的子组件&#xff0c;通过current调用子组件的方法&#xff0c;子组件需要通过forwardRef进行“包装”导出&#xff0c;通过useImperativeHandle暴露…...

【计算机网络】 —— 数据链路层(壹)

文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…...

AcWing 93. 递归实现组合型枚举

文章目录 前言代码思路 前言 今天晚上还有三个小时&#xff0c;写一晚上简单题。划水。 代码 #include<bits/stdc.h> using namespace std; int n,m; void dfs(int u,int sum,int state){if(sumn-u<m){return;//sum 表示当前选了 sum 个数字&#xff0c;假设把所有…...

vscode 折叠范围快捷键

vscode 折叠范围快捷键 问答 原文网址:https://www.n.cn/search/c830b29cb76146d08cae5074acfd4785 VSCode 折叠范围快捷键 在使用Visual Studio Code&#xff08;VSCode&#xff09;进行代码编辑时&#xff0c;掌握一些快捷键可以大大提高工作效率。以下是关于VSCode中折叠和…...

RabbitMQ 实现分组消费满足服务器集群部署

实现思路 使用扇出交换机&#xff08;Fanout Exchange&#xff09;&#xff1a;扇出交换机会将消息广播到所有绑定的队列&#xff0c;确保每个消费者组都能接收到相同的消息。为每个消费者组创建独立的队列&#xff1a;每个消费者组拥有自己的队列&#xff0c;所有属于该组的消…...

Emacs实时语法检查优化:flymake-cursor插件实现光标悬停提示

1. 项目概述&#xff1a;Emacs 实时语法检查的得力助手如果你是一个 Emacs 用户&#xff0c;并且主要用它来写代码&#xff0c;那么你一定对“实时语法检查”这个功能不陌生。在编写代码时&#xff0c;能够即时看到潜在的错误、拼写问题或者代码风格警告&#xff0c;这能极大地…...

MultiFunPlayer终极指南:5分钟掌握开源设备同步软件,打造沉浸式娱乐体验

MultiFunPlayer终极指南&#xff1a;5分钟掌握开源设备同步软件&#xff0c;打造沉浸式娱乐体验 【免费下载链接】MultiFunPlayer flexible application to synchronize various devices with media playback 项目地址: https://gitcode.com/gh_mirrors/mu/MultiFunPlayer …...

Zotero Format Metadata:让文献元数据格式化变得简单高效

Zotero Format Metadata&#xff1a;让文献元数据格式化变得简单高效 【免费下载链接】zotero-format-metadata Linter for Zotero. A plugin for Zotero to format item metadata. Shortcut to set title rich text; set journal abbreviations, university places, and item …...

基因组数据压缩技术SAGe:原理、优化与应用

1. 基因组数据压缩技术概述基因组测序技术的快速发展使得单个全基因组测序成本已降至数百美元级别&#xff0c;但随之而来的数据存储与传输压力却呈指数级增长。以Illumina NovaSeq 6000测序仪为例&#xff0c;单次运行可产生高达6TB的原始数据&#xff0c;这对医疗机构的存储基…...

现在不掌握NotebookLM航天科研工作流,你将错过下一轮国家重大专项申报窗口期——3大航天高校已启用的AI原生课题孵化模板首次解密

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM航天科学研究 NotebookLM 是 Google 推出的基于 AI 的研究协作者工具&#xff0c;专为处理长文档、技术报告与多源文献而设计。在航天科学研究中&#xff0c;其语义理解能力与引用溯源机制可…...

C++ Lambda表达式实战指南:从捕获策略到现代C++最佳实践

1. Lambda表达式基础&#xff1a;从语法到核心概念 第一次接触C Lambda表达式时&#xff0c;我被它奇怪的方括号语法弄得一头雾水。直到在真实项目中用它简化了回调函数&#xff0c;才真正体会到它的威力。Lambda本质上就是个"即用即扔"的函数对象&#xff0c;特别适…...

DESIGN.md,让AI设计不跑偏

使用 AI 设计工具时&#xff0c;最烦人的问题之一&#xff0c;就是输出不稳定。你明明已经告诉它&#xff1a;颜色怎么用、字体怎么搭、按钮要什么风格。可它生成几次之后&#xff0c;还是会偷偷改一点&#xff0c;最后做出来的界面风格前后不一致。DESIGN.md 就是为了解决这个…...

JUCE框架移植MDA经典音频插件:从VST2到现代跨平台开发实践

1. 项目概述&#xff1a;JUCE框架下的MDA插件遗产如果你在音频插件开发领域摸爬滚打过一段时间&#xff0c;尤其是对开源社区有所关注&#xff0c;那么“mda-plugins-juce”这个名字大概率会唤起你的一些记忆。这个由hollance维护的GitHub仓库&#xff0c;本质上是一个“移植”…...

PyQt5开发避坑:别再手动编译.ui文件了,试试uic.loadUi()动态加载

PyQt5高效开发&#xff1a;uic.loadUi()动态加载技术深度解析 在快速迭代的GUI开发过程中&#xff0c;PyQt5开发者常陷入一个效率陷阱——每次修改界面后都需要手动执行pyuic编译命令。这种重复性操作不仅打断开发流状态&#xff0c;还会在频繁调整阶段浪费大量时间。本文将揭示…...

Chiplet技术与全相干扩展架构解析

1. Chiplet技术概述与全相干扩展架构在现代计算架构中&#xff0c;Chiplet技术正在彻底改变传统单片SoC的设计范式。这种模块化设计方法允许将不同功能单元分解为独立的硅片&#xff0c;通过先进封装技术互连。全相干扩展&#xff08;远程翻译&#xff09;Chiplet作为其中的关键…...