Spring Boot 3.1 正式发布,更新了一大批新特性。。学不动了!

简介: Spring Boot 3.1 正式发布,更新了一大批新特性。。学不动了!

Spring Boot 3.1 正式发布

大家好,我是R哥。


上一篇:Spring Boot 3.0 正式发布,王炸!!


Spring Boot 3.0 发布半年左右,Spring Boot 3.1 正式发布了:


a7cb005e539b706e292cd81541b6553b_c1bd0e90e90652f6ebf308713c8ea691.pnga7cb005e539b706e292cd81541b6553b_c1bd0e90e90652f6ebf308713c8ea691.png


同时发布更新的还有 2.7.x 版本,同时,R哥注意到 2.6.x 版本线已经停止维护了,最新支持版本如下图所示:


2bb0b2f86ef0d53fe8e7d02038159fd6_b6cea8135e64b406448cb86281ad52c8.png

2.7.x 这也是目前唯一正在维护的 2.x 版本线了,商业支持的版本也只有 2.5.x 了。


如果你还没用过 Spring Boot,这里推荐下R哥的《Spring Boot 3 核心技术与最佳实践》最新书籍,包括底层实现原理及代码实战,知识点非常齐全,助你快速打通 Spring Boot 的各个环节。


Spring Boot 3.0 重大新特性

R哥看了下,Spring Boot 3.1 更新了不少内容,今天R哥就简单分享下几个重要的更新。


1、最低环境要求

Spring Boot 3.0 的发布,其最低要求 Java 17,并向上兼容支持 Java 19,Spring Boot 3.1 可以支持 Java 20 了,因为前段时间 Java 20 发布了。


对 Java 开发环境的要求对比表:


Spring Boot JDK Spring Maven Gradle

3.1.0 17 ~ 20 6.0.9+ 3.6.3+ 7.5+,8.x

3.0.0 17 ~ 19 6.0.2+ 3.5+ 7.5+

2.7.12 8 ~ 20 5.3.27+ 3.5+ 6.8.x, 6.9.x, 7.x, 8.x

2、大量依赖升级

Spring Boot 3.1 最低支持的 Spring 框架也变成了 Spring 6.0.9+,除此之外,Spring Boot 管理的大量第三方的技术依赖也有大幅度的的升级,具体可以参考官方版本发布文档:


https://github.com/spring-projects/spring-boot/releases/tag/v3.1.0


以上这些技术的升级对于 Spring Boot 应用的升级也是一头拦路虎。


3、移除 HttpClient 4

因为 Spring 6 删除了 RestTemplate 对 Apache HttpClient 4 的支持,取而代之的则是 Apache HttpClient 5。


而 Spring Boot 3.0 又同时包含了 HttpClient 4 和 HttpClient 5 两个依赖的管理,如果同时管理这两个版本,有的人可能会继续使用 HttpClient 4,应用程序在使用 RestTemplate 时可能会有潜在的错误,导致诊断困难。


所以,Spring Boot 3.1 移除了 HttpClient 4 的依赖管理,转而逼迫用户强制使用 HttpClient 5,大家有依赖 HttpClient 4 的升级时需要注意了。


4、Servlet 和 Filter 注册失败时抛异常

大家知道,Spring Boot 注册 Servlet 和 Filter 时用的 ServletRegistrationBean 和 FilterRegistrationBean 这两个类,之前注册失败时是记录 warn 级别的日志,现在则是直接抛出 IllegalStateException 异常。


如果不想注册失败抛出异常,还是想像以前一样记录 warn 警告日志,可以调用这两个类的 setIgnoreRegistrationFailure(true) 方法,即忽略注册失败,使用示例如下:


@Bean

public ServletRegistrationBean registerServlet() {

   ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new RegisterServlet(), "/registerServlet");

   servletRegistrationBean.addInitParameter("type", "公众号");

   servletRegistrationBean.addInitParameter("name", "Java技术栈");

   servletRegistrationBean.setIgnoreRegistrationFailure(true);

   return servletRegistrationBean;

}

5、Spring Authorization Server 自动配置

Spring Boot 3.1 提供了一个 spring-boot-starter-oauth2-authorization-server 启动器,可以支持 Spring Authorization Server 的自动配置,轻松配置基于 Servlet 的 OAuth2 授权服务器。


更多参考官方文档:


https://docs.spring.io/spring-boot/docs/3.1.0/reference/html/web.html#web.security.oauth2.authorization-server


6、Docker Compose 新模块

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,即官方容器编排工具,它可以轻松地定义多个容器之间的依赖关系、环境变量、网络设置等,并通过一个命令即可创建、启动和连接这些容器。


Spring Boot 3.1 提供了一个新模块:spring-boot-docker-compose,它支持与 Docker Compose 集成,当 Spring Boot 应用启动时,它会在当前工作目录中查找配置文件。


支持以下几种配置文件:


compose.yaml


compose.yml


docker-compose.yaml


docker-compose.yml


更多参考官方文档:


https://docs.spring.io/spring-boot/docs/3.1.0/reference/html/features.html#features.docker-compose


7、SSL 配置

Java KeyStore 和 PEM 编码证书等 SSL 信任相关的资料,现在可以使用 properties 属性进行配置,并且可以适用于各种类型的连接,例如嵌入式 Web 服务器、数据服务、RestTemplate 和 WebClient。


更多参考官方文档:


https://docs.spring.io/spring-boot/docs/3.1.0/reference/html/features.html#features.ssl


8、服务连接

Spring Boot 3.1 引入了一个新的服务连接概念,这是一个低级别的功能,旨在作为其他高级功能的构建块,这些高级功能可以通过定义 ConnectionDetails Bean 自动配置服务连接。


ConnectionDetails Bean 提供了建立、删除服务连接所需的详细信息,并且 Spring Boot 的自动配置也已经支持,当这些 Bean 可用时,它们将优先于任何与连接相关的配置参数,但是,与连接本身无关的配置参数(比如:控制连接池大小和行为的参数)仍将使用。


另外,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,涵盖 2000+ 道 Java 面试题,几乎覆盖了所有主流技术面试题。


Spring Boot 最新支持版本

R哥整理了 Spring Boot 的最新版本支持情况:


版本 发布时间 停止维护时间 停止商业支持

3.1.x 2023-05-18 2024-05-18 2025-08-18

3.0.x 2022-11-24 2023-11-24 2025-02-24

2.7.x 2022-05-19 2023-11-18 2025-02-18

2.6.x 2021-12-17 2022-11-24 2024-02-24

2.5.x 2021-05-20 已停止 2023-08-24

2.4.x 2020-11-12 已停止 2023-02-23

2.3.x 2020-05-15 已停止 已停止

2.2.x 2019-10-16 已停止 已停止

2.1.x 2018-10-10 已停止 已停止

2.0.x 2018-03-01 已停止 已停止

1.5.x 2017-01-30 已停止 已停止

话说你们用的哪个 Spring Boot 版本?


如果你还没用过 Spring Boot,最后推荐下R哥的《Spring Boot 3 核心技术与最佳实践》最新书籍,包括底层实现原理及代码实战,知识点非常齐全,助你快速打通 Spring Boot 的各个环节。


Spring Boot 最新最全的实战代码已上传 Github:


https://github.com/javastacks/spring-boot-best-practice


好了,今天的分享就到这里了,后续R哥也会继续关注并分享更多的 Spring Boot 干货,关注公众号Java技术栈第一时间推送。

————————————————

版权声明:本文为CSDN博主「Java技术栈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/youanyyou/article/details/130787685

相关文章
|
6月前
|
Java 数据库 Spring
Spring事务的传播机制(行为、特性)
Spring事务的传播机制(行为、特性)
126 0
|
6月前
|
JSON Dubbo Java
微服务框架(二十)Dubbo Spring Boot 生产就绪特性
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Dubbo Spring Boot 生产就绪特性
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
42 4
|
29天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
36 0
|
3月前
|
安全 前端开发 Java
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择。依赖注入使对象管理交由Spring容器处理,实现低耦合高内聚;AOP则分离横切关注点如事务管理,增强代码模块化。Spring还提供MVC、Data、Security等模块满足多样需求,并通过Spring Boot简化配置与部署,加速微服务架构构建。掌握这些核心概念与工具,开发者能更从容应对挑战,打造卓越应用。
43 1
|
6月前
|
设计模式 前端开发 Java
玩转Spring—Spring5新特性之Reactive响应式编程实战
玩转Spring—Spring5新特性之Reactive响应式编程实战
229 0
|
6月前
|
XML 监控 安全
Spring特性之一——AOP面向切面编程
Spring特性之一——AOP面向切面编程
78 1
|
2月前
|
安全 Java 开发者
强大!Spring Cloud Gateway新特性及高级开发技巧
在微服务架构日益盛行的今天,网关作为微服务架构中的关键组件,承担着路由、安全、监控、限流等多重职责。Spring Cloud Gateway作为新一代的微服务网关,凭借其基于Spring Framework 5、Project Reactor和Spring Boot 2.0的强大技术栈,正逐步成为业界的主流选择。本文将深入探讨Spring Cloud Gateway的新特性及高级开发技巧,助力开发者更好地掌握这一强大的网关工具。
222 6
|
3月前
|
存储 Java 开发者
使用Spring Boot 3.3全新特性CDS,启动速度狂飙100%!
【8月更文挑战第30天】在快速迭代的软件开发周期中,应用的启动速度是开发者不可忽视的一个重要指标。它不仅影响着开发效率,还直接关系到用户体验。随着Spring Boot 3.3的发布,其中引入的Class Data Sharing(CDS)技术为应用的启动速度带来了革命性的提升。本文将围绕这一全新特性,深入探讨其原理、使用方法以及带来的实际效益,为开发者们带来一场技术盛宴。
187 2
|
6月前
|
安全 Java 程序员
Spring框架的核心特性是什么?
【4月更文挑战第30天】Spring 的特性
368 0