Spring Boot 3.1 正式发布,王炸!!|速看
Spring Boot 3.1 正式发布
大家好,我是R哥。
上一篇:Spring Boot 3.0 正式发布,王炸!!
Spring Boot 3.0 发布半年左右,Spring Boot 3.1 正式发布了:
(资料图片仅供参考)
同时发布更新的还有 2.7.x 版本,同时,R哥注意到 2.6.x 版本线已经停止维护了,最新支持版本如下图所示:
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) 方法,即忽略注册失败,使用示例如下:
@Beanpublic 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 可用时,它们将优先于任何与连接相关的配置参数,但是,与连接本身无关的配置参数(比如:控制连接池大小和行为的参数)仍将使用。
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技术栈第一时间推送。
版权声明:本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,后果自负,并保留追究其法律责任的权利。
近期热文推荐:
1.1,000+ 道 Java面试题及答案整理(2022最新版)
2.劲爆!Java 协程要来了。。。
3.Spring Boot 2.x 教程,太全了!
4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!
5.《Java开发手册(嵩山版)》最新发布,速速下载!
觉得不错,别忘了随手点赞+转发哦!
关键词:
- 女童不慎掉入20米深井 18岁小姨三次下井成功营救
- 西安3个区域12月28日起每日开展全员核酸 官方提倡民众居家健身
- 浙江乐清一核酸检测结果异常人员 复采复检为阴性
- 浙江本轮疫情报告确诊病例490例 提倡“双节”非必要不出省
- 西安警方通报6起涉疫违法案件
- 西安新一轮核酸筛查日检测能力达160万管
- 西安市累计报告本土确诊病例811例
- 重庆曝光4起违反中央八项规定精神典型问题 警示党员干部清新过节
- 云南清水河边检站查获走私玉石和玉石毛料65公斤
- 吉林市政协原党组成员、副主席孙洪彬被开除党籍和公职
-
四川:力争三年完成638个历史遗留矿山生态修复
中新网成都12月28日电 (杨予頔)28日,四川省自然资源厅发布消息称,近日,四川省自然资源厅印发了《四川省历史遗留矿山生态修复三年行
-
不同养老模式共同推进 提升老年福祉 让老人享受“温暖夕阳”
我为群众办实事 | 不同养老模式共同推进 提升老年福祉 让老人享受“温暖夕阳” 央视网消息:近期,各地在“我为群众办实事”实
-
各地创新举措 把实事办好 把好事落细 温暖民心
我为群众办实事 | 各地创新举措 把实事办好 把好事落细 温暖民心 央视网消息:近期,各地在“我为群众办实事”实践活动中,
-
新疆伊犁州新源县发生3.3级地震 震源深度13千米
中新网12月28日电 中国地震台网正式测定:12月28日15时14分在新疆伊犁州新源县(北纬43 37度,东经82 65度)发生3 3级地震,震源深度13千米。
-
2021,比个心吧!
-
高风险岗位人员出行,会受到限制吗?
【两节防疫提示】高风险岗位人员出行,会受到限制吗?
-
【两节防疫提示】健康码“变黄”,对出行有何影响?
-
【挑战365天正能量速写画】第028期:卫国戍边英雄王焯冉表弟入伍
从小就怀揣着从军报国梦的盛冠杰,5年前就曾和哥哥王焯冉相约报名参军。却因当时体检未达标,遗憾错过军营,上了大学。去年哥哥卫国戍
-
【两节防疫提示】返乡和外出居民应注意什么?
-
浙江绍兴已无高风险地区 累计报告确诊病例387例
(抗击新冠肺炎)浙江绍兴已无高风险地区 累计报告确诊病例387例中新网绍兴12月28日电(记者 项菁)根据浙江省绍兴市新冠肺炎疫情联防联控指
X 关闭
西安新增本土确诊病例150例 详情发布
广东最低气温跌至-6℃现冰挂 部分道路及海上交通受影响
“2022科学跨年系列活动”启动 提高公众对科学类流言“免疫力”
珠科院多举措助力大湾区抗旱防咸保供水
只为那片美丽的云顶 河北一“守峰人”海拔2000米驻守12载
X 关闭
快看:为什么说只有饿死的狮子而没有饿死的老虎?两者的晚年有何不同?
世界关注:美国债务上限担忧加剧及鹰云密布施压,铜价续跌
孙燕姿回应「AI 孙燕姿」:没有任何技术能预测人类感受
全球要闻:误工费怎么要求对方赔偿
长武县“三个精准”打好招商引资主动仗