大家好,我是R哥。
最新消息,Spring Boot 一次性发布了 3 个版本:
Spring Boot 3.3 正式发布了,3.1.x 在前几天也停止维护了。
最新的支持版本如下:
从路线图可以看到每个版本的终止时间,每个版本的生命周期只有一年。
Spring Boot 进入了全新的 3.x 时代了,3.1.x 和 3.0.x 也相继停止维护了,商业支持的版本也只有 2.7+ 了,2.6.x 以下的版本彻底退出历史舞台。。
Spring Boot 3.3.0 新特性
1、最低环境要求
Spring Boot 3.0.0 开始支持并最低要求 Java 17,Spring Boot 3.1.5 开始支持 Java 21 了。
对 Java 开发环境的要求对比表:
Spring BootJDKSpringMavenGradle3.3.017 ~ 226.1.8+3.6.3+7.5+,8.x3.2.017 ~ 216.1.1+3.6.3+7.5+,8.x3.1.017 ~ 206.0.9+3.6.3+7.5+,8.x3.0.017 ~ 196.0.2+3.5+7.5+2.7.128 ~ 205.3.27+3.5+6.8.x, 6.9.x, 7.x, 8.x支持 Java 8 的最后一个 Spring Boot 2.x 系列版本已经退伍啦,Java 17 的新时代到来。
假如你还停留在 Java 8 就 OUT 了,已往一两年,Java 8 采用率腰斩,Java 17 暴涨 430%!!
R哥制作的《Java 17 新特性实战课》都可以报名学起来,好课不贵,199 元永久学习,如后续出了 Java 21 及更多版本新内容都能免费更新。
2、CDS 支持(可缩短启动时间)
什么是 CDS?
CDS 全称为:Class Data Sharing,即类数据共享,它是 JVM 的一项功能,它可以在多个 JVM 之间共享类,从而资助减少 Java 应用程序的启动时间和内存占用。
CDS 可以天生一个称为共享类归档(Shared Class Archive)的文件,即 *.jsa 文件,该文件包含预处置处罚的类元数据,它会在 JVM 启动时加载到内存,以便 JVM 可以快速访问这些类元数据,而不必要在启动时重新加载和剖析这些类信息,从而大大减少了启动时间。
使用方式如下:- $ java -Djarmode=tools -jar test-app.jar extract --destination application
- $ cd application
- $ java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar test-app.jar
复制代码 这里它便会创建一个 application.jsa 文件,只要应用程序未更新,就可以重复使用该文件。假如要使用缓存,必要在启动应用程序时添加一个额外的参数:- $ java -XX:SharedArchiveFile=application.jsa -jar test-app.jar
复制代码 有了这个特性支持,Spring Boot 应用程序的启动速度会大大提升,要直接腾飞了。
保举一个开源免费的 Spring Boot 实战项目:
https://github.com/javastacks/spring-boot-best-practice
3、Websockets 支持虚拟线程
Spring Boot 3.3.0 添加了 Websockets 对虚拟线程支持。
什么是虚拟线程?
虚拟线程是一种资本低廉、轻量级的用户模式的线程实现,也就是传说中的 “协程”,它可以充实利用可用硬件,大幅减少编写、维护和监测高并发应用的工作量。
我们都知道使用线程是要非常注意的,因为线程的创建、销毁都非常消耗系统资源,所以有了线程池,但这还不够,因为线程的数量是有限的,线程会壅闭操纵系统线程,无法尽大概的进步吞吐量。
因为使用线程的资本很高,所以才会有了虚拟线程,它是用户态线程,资本是相当低廉的,调理也完全由用户进行控制(JDK 中的调理器),它同样可以进行壅闭,但不消壅闭操纵系统线程,充实进步了硬件利用率,高并发也上了一个量级,从而实现了高吞吐量。
Java 19 初次引入虚拟线程,在 Java 21 中正式转正生产可用。
Spring Boot 3.1.5 做了对 Java 21 的兼容,Spring Boot 3.2.0 正式可以支持 Java 21 中的虚拟线程了,只必要添加以下配置即可:- spring.threads.virtual.enabled = true
复制代码 4、配置文件支持 Base64
配置文件加强了,如今可以在 property 和 YAML 配置文件文件中将资源加载为 Base64 格式的值了,纵然用 base64: 前缀将资源加载为 Base64 编码的文本值,这对于 SSL 证书等资源非常有用。
如下面配置示例:- spring:
- ssl:
- bundle:
- pem:
- mybundle:
- keystore:
- certificate: "base64:Ts9tL8UYRUdJTi..."
- private-key: "base64:Yk1dIEF0dHJpYn..."
复制代码 5、支持 SBOMs
支持 SBOMs,并添加了一个 SBOM 端点。
SBOM 全称为:Software Bill of Materials,即软件材料清单,它用于提供软件组件的清单和具体信息,包括其涉及到的开源和第三方依赖、库、工具等。
SBOM 的主要目标是进步软件的透明度,资助开发职员、安全团队理解软件中包含的具体内容,从而更好地管理安全风险、许可证合规性和依赖项的更新。
6、其他
1)可观察性加强了,主要添加了对 Micrometer 的 @SpanTag 注解的支持,新增了一个 InfoContributor 以及对 Prometheus 1.x 支持。
2)Spring Security 加强了,主要添加了对 JwtAuthenticationConverter 的主动配置。
3)服务连接支持加强了,主要添加了对Apache ActiveMQ Artemis 和 LDAP 的服务连接支持。
4)容器镜像加强了,主要添加了对 Docker Compose 对 Bitnami 容器镜像的支持。
5)大量 Spring 库和第三方类库都得到了更新,还有一些废除项。
总结
Spring Boot 3.3 这个版本的变化还挺大的,很多功能都得到了加强,做技术的真要时候保持对新技术的渴望啊,不然都跟不上时代的步调了。
Spring Boot 最新最全的实战代码已上传 Github:
https://github.com/javastacks/spring-boot-best-practice
假如你还没用过 Spring Boot,这里保举下我的《Spring Boot 核心技术课》,16 个模块,险些涉及所有核心技术,包括底层实现原理及代码实战,知识点非常齐备,助你快速打通 Spring Boot 的各个环节。
有必要的直接扫码订阅:
如今活动,订阅本课程还赠送Java面试库VIP 一年,已经资助很多小伙伴进入大厂,价值过万,订阅后请在付出完成页面接洽作者领取。
好了,今天的分享就到这里了,后续R哥也会继承关注并分享更多的 Spring Boot 资讯和干货,关注公众号Java技术栈第一时间推送。
版权声明: 本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,结果自负,并保存追究其法律责任的权利。
更多文章保举:
1.Spring Boot 3.x 教程,太全了!
2.2,000+ 道 Java面试题及答案整理(2024最新版)
3.免费获取 IDEA 激活码的 7 种方式(2024最新版)
以为不错,别忘了随手点赞+转发哦!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |