Spring Boot 3.2发布:大量Java 21的支持上线,改进可观测性
就在今天凌晨,Spring Boot 3.2正式发布了!该版本是在Java 21正式发布之后的重要支持版本,所以在该版本中包含大量对Java 21支持的优化。
下面,我们分别通过Spring官方发布的博文和Josh Long长达80+分钟的介绍视频,一起认识一下Spring Boot 3.2最新版本所带来的全新内容。
- 官方博文:https://spring.io/blog/2023/11/23/spring-boot-3-2-0-available-now
- Josh Long的视频:https://www.youtube.com/watch?v=dMhpDdR6nHw
最新特性
通过官方博文的介绍,可以有个大致的最新特性了解,其中包括:
- 支持虚拟线程
- 对JVM Checkpoint Restore的初步支持(CRaC项目)
- SSL 捆绑包重新加载
- 大量可观察性改进
- 支持 RestClient
- 支持 JdbcClient
- 支持 Jetty 12
- Apache Pulsar 对 Spring 的支持
- 对 Kafka 和 RabbitMQ 的 SSL 捆绑支持
- 重新设计的嵌套 Jar 处理
- Docker 镜像构建改进
此外,对于依赖的更新列表,因为比较长,这里DD就不列出来了,感兴趣的可以点击这里查看
视频介绍
下面,可以把关注点放到John Long的介绍视频里。一如既往的干货视频!通过在线编码的方式,直观的给大家展示新功能的魅力。

Tips:Josh Long的视频如果您不方便访问的话,DD这边给大家下载好了,同时也做了一份翻译字幕和中文配音视频。有需要观看的视频的小伙伴可以通过关注公众号:程序猿DD,发送关键词:springboot,获取下载链接。
下面是关于视频的总结,可以先大概看一下视频内容,感兴趣的话可以下载观看:
[00:16] Spring Boot 3.2带来了许多新功能,包括支持虚拟线程和Project Loom、改进的可观察性支持、可重载的SSL支持等。
- Spring Boot 3.2带来了许多新功能,包括虚拟线程和Project Loom。
- Java 21是Spring Boot 3.2的一个重要特性。
- Java 21引入了一些新的语法变化,如封闭类型、模式匹配、智能开关表达式和记录。
- Java 21被称为数据导向编程,旨在改进Java在大型单体应用中的表现。
[10:13] 使用字符串格式化和多行变量非常方便,还有一些新的特性,如模式匹配和解构操作符。
- 字符串格式化和多行变量是方便的选项。
- 新特性包括记录、密封类型、智能开关表达式和模式匹配。
- 目前还没有解构操作符,但正在开发中。
- 项目Loom虚拟线程是Java 21中的重要特性。
[20:27] 在这个片段中,演示了创建一个跳过重复项的集合,并使用线程来记录当前线程的名称和休眠100毫秒。
- 创建了一个跳过重复项的集合。
- 使用线程记录当前线程的名称。
- 休眠100毫秒。
- 演示了使用虚拟线程来执行Java代码。
[30:41] 在Spring Boot 3.2中,我们将使用Java 21、Maven和一些支持库来构建一个与SQL数据库通信的应用程序。
- 使用了test containers API来启动Docker镜像。
- 使用了spring boot starter jdbc依赖来连接PostgreSQL数据库。
- 通过添加特定的配置来启动PostgreSQL容器。
[40:57] 使用Spring Boot 3.0中的声明式接口可以更简化代码,提供一个给定URL请求的猫事实。
- 可以使用新的JDBC和REST客户端来调用端点。
- 使用Project Loom和Drava 21,可以在Spring应用程序的不同层级中获得一致的虚拟线程集成。
- 这种方法既具备了阻塞API的便利性,又不会丧失可用性。
- 可以使用声明式接口来实现给定URL请求的猫事实。
[51:09] Spring框架中有一个称为SmartLifeCycle的接口,可以用来表示典型Spring生命周期的方法。
- SmartLifeCycle是一个更智能的版本,用于让用户消费。
- SmartLifeCycle的方法与检查点方法对应。
- 可以使用SmartLifeCycle来管理应用程序的启动和停止。
- 在这个例子中,通过实现SmartLifeCycle接口,可以实现应用程序的启动和停止功能。
[01:01:23] 通过一个文件来生成唯一的键值对,并且配置了一个自签名的SSL证书。
- 在一个文件中写入数字,每次运行时递增并写入文件。
- 生成的键值对是唯一的,用于展示随时间变化。
- 配置了自签名的SSL证书,并通过指定端口号8443来使用。
[01:11:38] 在本地机器上,我们可以通过Zipkin来查看分布式追踪的图形
- 使用Docker compose启动Zipkin实例
- 在应用代码中增加采样概率
- 通过aop支持在类路径上添加注解来显示跟踪ID和跨度ID
- 通过Zipkin可以查看请求日志和服务之间的跳转
如果您学习过程中如遇困难?可以加入我们超高质量的Spring技术交流群,参与交流与讨论,更好的学习与进步!更多Spring Boot教程可以点击直达!,欢迎收藏与转发支持!
欢迎关注我的公众号:程序猿DD。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源
Spring Boot 3.2发布:大量Java 21的支持上线,改进可观测性的更多相关文章
- Spring boot接受json赋值给java对象
Spring boot接受json赋值给java对象 新建 模板 小书匠 前言 写这个东西,一方面是我自己在做项目的时候,对json的使用还不是十分的熟悉,对spring boot的使用也不是很熟悉, ...
- Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题【转】
Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题 http://blog.didispace.com/Spring-Boot-And-Feign- ...
- 启动spring boot项目时报错:java.lang.ClassNotFoundException: javax.servlet.Filter
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- Spring Boot Web应用开发 CORS 跨域请求支持:
Spring Boot Web应用开发 CORS 跨域请求支持: 一.Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等CORS与JSONP相比 1. JSONP只能实现 ...
- 搞事情?Spring Boot今天一口气发布三个版本
学无止境?本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的乌托邦]逐个击 ...
- Spring Boot 2.4发布了,但Spring Cloud用户不推荐着急升级
前段时间Spring Boot发布了本年度最后一个重要更新版本:Spring Boot 2.4.0. 最近在社群里也开始有讨论关于Spring Boot 2.4的一些使用问题.我发现有很多Spring ...
- 一个比Spring Boot快44倍的Java框架!
最近栈长看到一个框架,官方号称可以比 Spring Boot 快 44 倍,居然这么牛逼,有这么神奇吗?今天带大家来认识一下. 这个框架名叫:light-4j. 官网简介:A fast, lightw ...
- Spring Boot 应用 快速发布到linux服务器的脚本代码示例
前提说明:spring boot 应用打包成jar包之后要部署到Linux服务器上面运行,我用的nohup java -jar 命令,但是代码更新之后重新部署的时候覆盖原来的项目,又要手动运行ps - ...
- 启动Spring boot项目报错:java.lang.IllegalArgumentException: LoggerFactory is not a Logback
java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on t ...
- spring boot 2.x版本:java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedDataBinder
标题 ##搭建spring boot 2.0.3版本 使用alibaba的druid数据库连接池,com.github.pagehelper的分页插件,启动项目报错. 错误提示:java.lang.C ...
随机推荐
- Canvas好难,如何让研发低成本实现Web端流程图设计功能
摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 相信大家在职场中经常会用到流程图,在互联网行业,绘制流程 ...
- 聊聊自然语言处理NLP
概述 自然语言处理(NLP)的正式定义:是一个使用计算机科学.人工智能(AI)和形式语言学概念来分析自然语言的研究领域.不太正式的定义表明:它是一组工具,用于从自然语言源(如web页面和文本文档)获取 ...
- [gin]基于切片实现crud
前言 代码参考自<Building Distributed Application in Gin> 需求:设计一个食谱相关的API,数据存放到切片中. 设计模型和API 模型 type R ...
- 京东搜索EE链路演进
导读 搜索系统中容易存在头部效应,中长尾的优质商品较难获得充分的展示机会,如何破除系统的马太效应,提升展示结果的丰富性与多样性,助力中长尾商品成长是电商平台搜索系统的一个重要课题.其中,搜索EE系统在 ...
- WPF 自定义窗体(一)
.Net默认的窗体样式只有四种:None.SingleBorderWindow.ThreeDBorderWindow.ToolWindow,都比较"丑".而很多时候,我们希望自定义 ...
- 第1章 Git概述
第1章 Git概述 Git 是一个免费的.开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目. Git 易于学习,占地面积小,性能极快. 它具有廉价的本地库,方便的暂存区域和多个工作流 ...
- 慢SQL治理实践及落地成果分享
一.治理背景 数据库系统性能问题会对应用程序的性能和用户体验产生负面影响.慢查询可能导致应用程序响应变慢.请求堆积.系统负载增加等问题,甚至引发系统崩溃或不可用的情况.慢SQL治理是在数据库系统中针对 ...
- .NET反编译神器ILSpy怎么用?
前言 上一篇文章我们介绍了4款免费且实用的.NET反编译工具,这篇文章主要来说说ILSpy这个工具该如何安装和使用. ILSpy ILSpy是一款免费.开源的 .NET 反编译工具,能够将已编译的 . ...
- FreeSWITCH容器化问题之rtp端口占用
操作系统 :CentOS 7.6_x64.debian 11 (bullseye,docker) FreeSWITCH版本 :1.10.9 Docker版本:23.0.6 FreeSWITCH容器化带 ...
- Aho-Corasick 算法 AC自动机实现
敏感词过滤在社区发帖.网站检索.短信发送等场景下是很常见的需求,尤其是在高并发场景下如何实现敏感词过滤,都对过滤算法提出了更高的性能要求,Ahocorasick算法能够实现毫秒级的万字过滤匹配,能够很 ...