Spring Framework 的版本历史和JDK、Springboot对应关系

news2024/11/24 4:42:28

spring 历史版本迭代

在这里插入图片描述

版本版本特性
Spring Framework 1.01. 所有代码都在一个项目中
2. 支持核心功能IoC、AOP
3. 内置支持Hibernate、iBatis等第三方框架
4. 对第三方技术简单封装。如:JDBC、Mail、事务等
5. 只支持XML配置方式。
6.主要通过 XML 配置文件来管理对象和依赖关系,配置工作较为繁琐。
Spring Framework 2.01. 最重要的变化:支持注解配置
2. 增加对ehcache支持
3. 对JMS(Java消息服务)、JMX(Java管理扩展)等支持
4.引入了更多的企业级特性,如声明式事务管理。
5.支持与第三方框架(如 Struts、Hibernate)的更好集成。
6.提供了更多的数据访问支持,如 JdbcTemplate 和 HibernateTemplate。
Spring Framework 3.01. 引入了基于 Java 的配置(@Configuration),作为 XML 配置的替代。
2. 由原来的一个项目拆分成多个子模块。
3. 添加单元测试子模块
4. 大量扩展了注解驱动的开发,使得代码更加简洁。
5. 支持JSR-303/JSR-349 Bean Validation 规范,用于验证模型对象。
6. 强化了对 RESTful Web 服务的支持,引入了 @RestController 和 ResponseEntity。
Spring Framework 4.01. 全面支持Java 8,如 Lambda 表达式和日期/时间 API。
2. 添加二级子项目 Spring MVC ,基于Servlet 3.0开发
3. 提供WebSocket支持。
4. 引入@RestController等注解,增强对Restful的支持。
5. 专注于提升性能和减少内存占用。
6. 更好地适应了多核处理器和高并发环境。
Spring Framework 5.01. 最低环境要求Java 8
2. 日志整合。把原来commons-logging 封装后变为spring-jcl模块
3. 跨域更改。把原来的JSONP支持变更为修改响应头的@CrossOrigin注解。
4. 响应式编程。添加二级子项目WebFlux ,支持Reactor和其他反应式流库。
5. 使用Kotlin(科特林)进行函数式编程
6. 对Java 9及更高版本的支持。
7. 强化了对微服务和云原生应用的支持。
8. 提升了对WebSocket和HTTP/2协议的支持。
Spring Framework 6.01. 最低环境要求Java 17
2. 加强对响应式编程支持。添加子模块spring-r2dbc
3. 取消子模块spring-orm-hibernate
4,只保留spring-orm,只支持Hibernate5。

spring 生态项目有哪些

Spring从最初的一城一池,发展到如今已经发展为一个生态帝国,旗下拥有诸多的子项目,从最基本的Spring Ioc/AOP使用,到安全管理,再到 大数据,Spring已经逐渐的渗入到各个领域。目前,几乎所有JavaWeb相关的开发都可以在Spring中找到合适的方案,为了在开发的时候,防止重造轮子,下边梳理一下Spring的各个子项目,做到心中有数:

子项目名称子项目介绍
Spring IO PlatformSpring IO是可集成的、构建现代化应用的版本平台。Spring IO是模块化的、企业级的分布式系统,包括一系列依赖,使得开发者仅能对自己所需的部分进行完全的部署控制
Spring BootSpring应用快速开发工具,用来简化Spring应用开发过程
Spring XDSpring XD (eXtreme Data,极限数据) 是Pivotal的大数据产品。它结合了Spring Boot和Grails,组成Spring IO平台的执行部分
Spring Cloud为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话和集群状态)中操作的开发工具。使用Spring Cloud,开发者可以快速实现上述这些模式
Spring Data是为了简化构建基于Spring框架应用的数据访问实现,包括非关系数据库、Map - Reduce框架、云数据服务等;也包含,对关系数据库的访问支持
Spring IntegrationSpring Integration为企业数据集成提供了各种适配器,可以通过这些适配器来转换各种消息格式,并帮助Spring应用完成与企业应用系统的集成
Spring BatchSpring Batch是一个轻量级的完整批处理框架,旨在帮助应用开发者构建一个健壮、高效的企业级批处理应用(这些应用的特点是不需要与用户交互,重复的操作量大,对于大容量的批量数据处理而言,这些操作往往要求较高的可靠性)
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用Spring IoC和AOP功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作
Spring HATEOAS是一个用于支持超文本驱动的REST Web服务的开发库,是HATEOAS的实现。HATEOAS(Hypermedia as the engine of application state)是REST架构风格中最复杂的约束,也是构建成熟REST服务的核心。它的重要性在于打破了客户端和服务器之间严格的契约,使得客户端可以更加智能和自适应性,而REST服务本身的进化和更新也变得更加容易
Spring SocialSpring Social是Spring框架的扩展,用来方便开发Web社交应用程序,可通过该项目来创建与各种社交网站的交互,如Twitter、Facebook、LinkedIn和TripIt等
Spring AMQP是基于Spring框架的AMQP消息解决方案,提供模板化的发送和接收消息的抽象,提供基于消息驱动的POJO。这个项目支持Java和.NET两个版本。Spring Source旗下的Rabbit MQ(Erlang语言开发)就是一个开源的基于AMQP的消息服务器
Spring for AndroidSpring for Android为Android终端开发应用提供Spring的支持,它提供了一个在Android应用环境中工作、基于Java的REST客户端
Spring MobileSpring Mobile是基于Spring MVC构建的,为移动终端的应用开发提供支持。比如,使用Spring Mobile可以在服务器端自动识别连接到服务器的移动终端的相关设备信息,从而为特定的移动终端实现应用定制
Spring Web Flow (SWF)一个建立在Spring MVC基础上的Web页面流引擎。随着其自身项目的发展,Web Flow比原来更为丰富,SWF定义了一种特定的语言来描述页面流。其目标是成为管理Web应用页面流程的最佳方案。当你的应用需要复杂的导航控制,如向导,在一个比较大的事务过程中指导用户经过一连串的步骤的时候,SWF是一个很好的解决方案框架
Spring Web ServicesSpring Web Services (Spring WS) 是基于Spring框架的Web服务框架,主要侧重于基于文档驱动的Web服务,提供SOAP服务开发,允许通过多种方式创建Web服务
Spring LDAPLDAP是一个用于操作LDAP的Java框架,类似于Spring JDBC提供了JdbcTemplate方式来操作数据库。这个框架提供了一个LdapTemplate操作模板,可帮助开发人员简化looking up、closing contexts、encoding/decoding values、filters等操作
Spring Session致力于提供一个公共基础设施会话,支持从任意环境中访问一个会话。在Web环境下支持独立于容器的集群会话,支持可插拔策略来确定Session ID,WebSocket活跃的时候可以简单地保持HttpSession
Spring ShellSpring Shell提供交互式的Shell,用户可使用简单的基于Spring的编程模型来开发命令

Spring 和 JDK版本对应关系

Spring版本JDK版本要求
6.0.x - 6.1.xJDK 17 - 21
5.3.xJDK 8 - 19
5.2.xJDK 8 - 15
5.1.xJDK 8 - 12
5.0.xJDK 8 - 10
4.3.xJDK 6 - 8

Spring 和Springboot 对应关系

以下是常见的 Spring 和 Spring Boot 部分对应关系(并非涵盖所有版本):

Spring Boot 版本Spring 版本
3.2.x6.1.x
3.1.x6.0.x
3.0.x5.3.x
2.7.x5.3.x
2.6.x5.3.x
2.5.x5.3.x
2.4.x5.3.x
2.3.x5.2.x
2.2.x5.2.x
2.1.x5.1.x
2.0.x5.0.x
1.5.x4.3.x

SpringBoot、SpringCloud、SpringCloudAlibab对应版本选择

SpringBoot、SpringCloud、SpringCloudAlibab对应版本选择

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringSecurity创建一个简单的认证应用

1、SpringSecurity 的简介 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架,它是Spring项目组中用来提供安全认证服务的框架,能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案。 Spring Security 的前身是 Acegi …

力扣 LeetCode 236. 二叉树的最近公共祖先(Day10:二叉树)

解题思路: 后序遍历 注意: p和q其中一个就是它们的公共祖先的情况也考虑到了,假设q是公共祖先,遇到q就直接返回,相当于是下面一边为空,一边不为空的情况,返回不为空就一边即可 class Solutio…

AIGC(生成式AI)试用 18 -- AI Prompt

"忘了",“记不清了”,“有点印像” “能给点提示吗?” ...... “哦,想起来了,是这样的。。。。。。” 这就是提示的作用:通过关键信息、结构化信息提示,引导完整的、…

Telegram bot Mini-App开发实践---Telegram简单介绍与初始化小程序获取window.Telegram.WebApp对象并解析

➡️【好看的灵魂千篇一律,有趣的鲲志一百六七!】- 欢迎认识我~~ 作者:鲲志说 (公众号、B站同名,视频号:鲲志说996) 科技博主:极星会 星辉大使 后端研发:java、go、python、TS,前电商、现web3 主理人:COC杭州开发者社区主理人 、周周黑客松杭州主理人、 AI爱好…

在Windows环境下打包Qt C++项目为独立可执行文件的完整指南

目录 1. 配置Qt环境变量步骤: 2. 使用Release模式编译项目步骤: 3. 使用windeployqt工具收集依赖项步骤: 4. 精简复制后的文件目录方法一:使用windeployqt的选项方法二:手动删除不必要的文件方法三:使用静态…

多摩川编码器协议及单片机使用

参考: https://blog.csdn.net/qq_28149763/article/details/132718177 https://mp.weixin.qq.com/s/H4XoR1LZSMH6AxsjZuOw6g 1、多摩川编码器协议 多摩川数据通讯是基于485 硬件接口标准NRZ 协议,通讯波特率为2.5Mbps 的串行通讯,采用差分两…

2024年11月22日Github流行趋势

项目名称:twenty 项目维护者:charlesBochet, lucasbordeau, Weiko, FelixMalfait, bosiraphael 项目介绍:正在构建一个由社区驱动的现代Salesforce替代方案。 项目star数:22,938 项目fork数:2,413 项目名称&#xff1…

使用Kubernetes部署第一个应用

目录 前提条件 启动集群 部署 nginx 应用 创建 YAML 文件 应用 YAML 文件 查看部署结果 理解Pods 相关命令 公布应用程序 问题背景 Kubernetes Service(服务)概述 服务和标签 为Deployment 创建一个 Service 伸缩应用程序 Scaling&#x…

第T8周:Tensorflow实现猫狗识别(1)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: (二)具体步骤 from absl.l…

使用 OpenAI 进行数据探索性分析(EDA)

探索性数据分析(Exploratory Data Analysis, 简称 EDA)是数据分析中不可或缺的环节,帮助分析师快速了解数据的分布、特征和潜在模式。传统的 EDA 通常需要手动编写代码或使用工具完成。现在,通过 OpenAI 的 GPT-4 模型&#xff0c…

力扣-Hot100-栈【算法学习day.40】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴&am…

低速接口项目之串口Uart开发(四)——UART串口实现FPGA内部AXILITE寄存器的读写控制

本节目录 一、设计背景 二、设计思路 三、逻辑设计框架 四、仿真验证 五、上板验证 六、往期文章链接本节内容 一、设计背景 通常,芯片手册或者IP都会提供一系列的用户寄存器以及相关的定义,用于软件开发人员进行控制底层硬件来调试,或封装…

记录第一次安装laravel项目

window系统 Laravel中文文档:https://laravel-docs.catchadmin.com/docs/11/getting-started/installation 1.使用composer安装全局laravel composer global require laravel/installer2.安装完成后在命令行输入laravel,如果报错:laravel不是…

PDF电子发票信息转excel信息汇总

PDF电子发票信息提取,支持将pdf发票文件夹下的剩所有发票,转为excel格式的信息,对于发票量比较大,不好统计,需要一个一个去统计的情况,可节省2个点以上的时间,一次下载,终身有效。 使…

性能优化(二):ANR

介绍 ANR全称Application Not Responding,意思就是程序未响应。如果一个应用无法响应用户的输入,系统就会弹出一个ANR对话框,用户可以自行选择继续等待亦或者是停止当前程序。 Android系统会监控程序的响应状况,一旦出现下面情况…

Idea修改Commit Changes模式、idea使用git缺少部分Commit Changes

文章目录 一、模式一1、页面效果如下2、如何打开为这种样式? 二、模式二1、页面效果如下2、如何打开为这种样式? 三、总结 前言:Idea中代码提交到git库时的commit Change有两种模式,每种模式的界面及功能都不太一样。 Commit Cha…

【UE5】在材质中计算模型在屏幕上的比例

ViewProperty节点有很多有意思的变量 例如用 ViewProperty 的 tan ⁡ ( FOV / 2 ) \tan(\text{FOV} / 2) tan(FOV/2) 输出,用它计算模型占屏幕的比例。 (常用于for运算的次数优化,也可以用于各种美术效果) ScaleOnScreen Obje…

【STM32】MPU6050简介

文章目录 MPU6050简介MPU6050关键块带有16位ADC和信号调理的三轴MEMS陀螺仪具有16位ADC和信号调理的三轴MEMS加速度计I2C串行通信接口 MPU6050对应的数据手册:MPU6050 陀螺仪加速度计 链接: https://pan.baidu.com/s/13nwEhGvsfxx0euR2hMHsyw?pwdv2i6 提取码: v2i6…

vue3 在哪些方便做了性能提升?

概要 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。vue2版本阶段已经证明了它的易用性和流行性,说明它已经足够优秀在构建前端应用领域,而vue3的推出更是将性能提升做了最大的优化,更加易用、灵活、高效&…

Vue3+element-plus 实现中英文切换(Vue-i18n组件的使用)

1、前言 在 Vue 3 项目中结合 vue-i18n 和 Element Plus 实现中英文切换是一个常见的需求。下面是一个详细的步骤指南,帮助你完成这个任务。 安装引入 1. 安装依赖 首先,你需要安装 vue-i18n 和 Element Plus。 npm install vue-i18nnext element-p…