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

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对应版本选择

### JDK 17 Compatible Spring Boot Version To ensure compatibility between JDK and Spring Boot, it is essential to align the versions appropriately. For JDK 17, the recommended Spring Boot version starts from **Spring Boot 3.x**, as this series officially supports Java 17[^1]. The official website of Spring provides a straightforward way to download specific versions through their project page or Maven repositories. Below are some methods for downloading: #### Method 1: Using Start.spring.io You can use the online tool provided by Spring at [start.spring.io](https://start.spring.io/). This allows you to generate a pre-configured Spring Boot project with your desired dependencies. - Navigate to [start.spring.io](https://start.spring.io/) - Select `Gradle Project` or `Maven Project`, depending on your preference. - Choose `Java` as the language. - Set the Spring Boot version to **3.x** (e.g., 3.0.0 or later). - Ensure that the generated files include configurations suitable for JDK 17. Once downloaded, unzip the file into your workspace and configure your IDE accordingly[^2]. #### Method 2: Download via Maven Repository If you prefer manual configuration using Maven, add the following snippet to your `pom.xml`. It specifies the correct Spring Boot parent version compatible with JDK 17: ```xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.0</version> </parent> <properties> <java.version>17</java.version> </properties> ``` This ensures that all child modules inherit settings appropriate for both Spring Boot 3.x and JDK 17. #### Method 3: Direct Binary Downloads For those who do not wish to set up build tools like Maven or Gradle immediately, binaries may be obtained directly from GitHub releases under the Spring Boot repository. Visit the [GitHub Releases Page](https://github.com/spring-projects/spring-boot/releases), locate tag v3.0.0 or higher, and follow instructions there to extract necessary JARs manually. Ensure proper environment setup including setting JAVA_HOME pointing towards installed JDK 17 directory before running any application built against these libraries.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苍煜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值