Spring Boot 3.1.0 发布,添加大量新功能和改进

a449198da3662a8aad7b19a24b470650.png

来源:JAVA架构日记

Spring Boot 3.1.0 现已发布,此版本添加了大量新功能和改进。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.0</version><relativePath/> <!-- lookup parent from repository --></parent>


亮点

  • Spring Authorization Server 的自动配置

  • 支持在开发时使用 Testcontainers 和 Docker Compose 管理外部服务

  • 简化集成测试中 Testcontainers 的配置

  • 支持 Mockito 单元测试

升级 HttpClient 5

在 Spring Framework 6 中,推荐使用 Apache HttpClient 5,因此已经移除了对 Apache HttpClient 4 与 RestTemplate 的支持。Spring Boot 3.0 包含了 HttpClient 4 和 5 的依赖管理。但如果使用了 HttpClient 4 仍会导致使用 RestTemplate 时出现难以诊断的错误。

Spring Boot 3.1 为了鼓励用户改用 HttpClient 5 取代 HttpClient 4,移除了 HttpClient 4 的依赖管理。

Servet 和 Filter 注册优化

如果 ServletRegistrationBean 和 FilterRegistrationBean 类的注册失败,将抛出 IllegalStateException 异常而不是记录警告。如果需要保持旧有的行为,则需要在注册 bean 上调用 setIgnoreRegistrationFailure(true)方法。

Git Commit ID Maven 插件版本属性

覆盖 io.github.git-commit-id:git-commit-id-maven-plugin 版本的属性已更新以匹配其 artifact 名称。适应此更改,在 pom.xml 文件中需要将 git-commit-id-plugin.version 替换为 git-commit-id-maven-plugin.version。

Spring Kafka 重试主题自动配置

如果使用了 Apache Kafka 的自动配置重试主题(spring.kafka.retry.topic.enabled: true),并使用具有最大延迟的指数回退,则所有最大延迟水平的重试现在都发送到相同的主题。以前,即使超过了最大延迟,每个重试都会使用一个单独的主题。

Testcontainers 的依赖管理

Spring Boot 的依赖管理现在包括 Testcontainers。如果需要,可以使用 testcontainers.version 属性覆盖由 Spring Boot 管理的版本。

Hibernate 6.2

Spring Boot 3.1 升级到 Hibernate 6.2。请参阅 Hibernate 6.2 迁移指南,了解此更改可能对应用程序产生的影响。

Jackson 2.15

Spring Boot 3.1 升级到 Jackson 2.15。请参阅 Jackson Wiki,了解此更改可能对应用程序产生的影响。

2.15 中显着的更改是引入了处理限制。要调整这些约束,请定义一个类似于以下内容的 Jackson2ObjectMapperBuilderCustomizer:

@Bean
Jackson2ObjectMapperBuilderCustomizer customStreamReadConstraints() {return (builder) -> builder.postConfigurer((objectMapper) -> objectMapper.getFactory().setStreamReadConstraints(StreamReadConstraints.builder().maxNestingDepth(2000).build()));
}

升级 Mockito 5

Spring Boot 3.1 升级到 Mockito 5,具体是 5.3。请参阅 Mockito 发布说明,了解 5.x 系列中的显着更改。

Health Groups 默认验证健康状态

健康组成员的配置现在将在启动时进行验证。如果包含或排除了不存在的健康指标,则启动将失败。设置 management.endpoint.health.validate-group-membership 为 false 可以禁用此验证,恢复早期版本的行为。

服务连接

引入了新的服务连接概念,由 ConnectionDetails bean 在应用程序中表示。这些 bean 提供了建立与远程服务连接所需的必要详细信息,而 Spring Boot 的自动配置已更新为消耗 ConnectionDetails bean。当这些 bean 可用时,它们将优先于任何与连接相关的配置属性。控制连接池大小和行为等与连接本身无关的配置属性仍将使用。

这项低级功能旨在作为自动配置服务连接的其他更高级特性的构建块,通过定义 ConnectionDetails bean 来实现。。

Docker Compose

新模块spring-boot-docker-compose提供了与 Docker Compose 的集成。当应用程序启动时,Docker Compose 集成将在当前工作目录中查找配置文件。支持以下文件:

  • compose.yaml

  • compose.yml

  • docker-compose.yaml

  • docker-compose.yml

要使用非标准文件,请设置 spring.docker.compose.file 属性。

默认情况下,配置文件中声明的服务将使用 docker-compose up 启动,并将这些服务的连接详细信息 bean 添加到应用程序上下文中,以便可以在不进行任何进一步配置的情况下使用这些服务。当应用程序停止时,将使用 docker-compose down 关闭服务。可以使用 spring.docker.compose.lifecycle-management、spring.docker.compose.startup.command 和 spring.docker.compose.shutdown.command 配置属性自定义此生命周期管理及用于启动和关闭服务的命令。

请参阅参考文档以获取更多详细信息,包括目前支持的服务列表。

SSL 配置

现在可以使用属性配置 SSL 信任材料,例如 Java KeyStores 和 PEM 编码的证书,并以更一致的方式应用于各种类型的连接,例如嵌入式 Web 服务器、数据服务、RestTemplate 和 WebClient。

请参阅参考文档以获取更多信息。

Spring Authorization Server 自动配置

此版本中新增了对 Spring Authorization Server 项目的支持,同时提供了新的spring-boot-starter-oauth2-authorization-server启动器。有关详细信息,请参阅 Spring Boot 参考文档中的 Authorization Server 部分。

Docker 镜像构建

镜像创建日期和时间

spring-boot:build-image Maven 目标和 bootBuildImage Gradle 任务现在具有 createdDate 配置选项,可用于将生成图像元数据中的 Created 字段的值设置为用户指定的日期或 now 以使用当前日期和时间。有关详细信息,请参阅 Gradle 和 Maven 插件文档。

镜像应用程序目录

spring-boot:build-image Maven 目标和 bootBuildImage Gradle 任务现在具有 applicationDirectory 配置选项,可用于设置在构建包消耗之前将应用程序内容上传到构建器映像中的位置。这也将是生成的映像中应用程序内容的位置。有关详细信息,请参阅 Gradle 和 Maven 插件文档。

------

我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取!

推荐阅读

  • ChatGPT官方APP上线:速度极快且免费、增加语音识别!

  • 如何在Linux 终端上使用 ChatGPT|文末彩蛋

  • 微软官方亲自出教程,拿捏「Prompt工程」高级玩法

··································

你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30340.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拒绝白嫖!马斯克将起诉微软,称其使用 Twitter 数据“非法”训练GPT

来源&#xff1a;InfoQ、整理&#xff1a;Tina 北京时间 4 月 20 日早间消息&#xff0c;埃隆马斯克表示将对微软提起“诉讼”&#xff0c;理由是微软使用 Twitter 数据“非法”训练其产品。 今天早些时候微软宣布将停止在其智能广告平台上支持 Twitter&#xff0c;马斯克此举…

【GPT4技术揭秘】GPT-4 Architecture,Infrastructure,Training Dataset,Costs,Vision,MoE

本文是对《GPT-4 Architecture,Infrastructure,Training Dataset, Costs, Vision, MoE 》的中文翻译。介绍了GPT-4使用的相关技术&#xff0c;希望对大家有一些帮助。群友分享了总结内容如下&#xff1a; 13T tokens预训练语料 &#xff08;llama和palm是1.4T&#xff09;MoE&…

3 分钟为英语学习神器 Anki 部署一个专属同步服务器

原文链接&#xff1a;https://icloudnative.io/posts/anki-sync-server/ Anki 介绍 Anki 是一个辅助记忆软件&#xff0c;其本质是一个卡片排序工具--即依据使用者对卡片上的自定义内容进行主动测试、自我评判后&#xff0c;其内部算法根据评判结果更改每张卡片下次测试时间的…

chatgpt赋能python:Python中的{:>8}

Python中的 {:>8} 介绍 在Python中&#xff0c;{:>8}是一个字符串格式化的方法&#xff0c;它的作用是将字符串向右对齐&#xff0c;并在字符串左侧填充指定字符。这个方法非常有用&#xff0c;尤其是在需要对齐输出结果或者生成格式化的文本时。 这个方法在Python中非…

Heartbeat安装

安装Heartbeat前的准备 Heartbeat集群必须的硬件 从下图看出&#xff0c;构建一个Heartbeat集群系统必须的硬件设备有&#xff1a; 节点服务器&#xff1b; 网络和网卡&#xff1b; 共享磁盘。 节点服务器 安装Heartbeat至少需要两台主机&#xff0c;并且对主机的要求不高&…

ansible企业级实战(Markdown)

ansible经典实战 一、配置文件解释二、实战2.1 脚本分发 && 使用copy生成新文件2.2 列出所有被管理主机list2.3 基于key验证来避免每次输入密码2.3.1 机器密码不一样的解决方案 2.4 fetch 抓取被控制端的文件2.4.1 fetch 如何抓取多个文件&#xff1f; 2.5 file 模块设…

【Python】词云之 wordcloud库 全解析

有用的话&#xff0c;欢迎姗莲✨✨✨✨✨✨✨✨✨✨✨✨✨ 目录 一基础用法二、WordCloud类 形参说明2.1 常用参数2.11 字体 font_path2.12 画布尺寸 width、hight2.13 比例&#xff08;缩放&#xff09;scale2.14 颜色(表) colormap2.15 颜色函数 color_func2.16 词语组合频率…

【云炬COMSOL模型】自己做的激光超声的COSMOL模型

模拟结果 表面温度 等值线 表面应力 模型设置 全局定义 几何 材料 固体传热物理场 固体力学物理场 多物理场 网格 研究&计算日志 2e-06 - out- 1.43e-06 - out- 1.44e-06 - out- 1.45e-06 - out- 1.46e-06 …

uniapp生成商品分享海报

uniapp用canvas生成一个分享商品的海报 文章目录 前言一、展示效果二、使用步骤1.HTML部分2.CSS部分3.JS部分 总结 前言 uniapp用canvas生成一个分享商品的海报&#xff0c;因为用到了uni.downloadFile这个API&#xff0c;所以要注意图片在H5端跨域的问题。 以下是本篇文章正…

postman错误提示“Current request is not a multipart request”

今天在写业务进行批量上传文件时&#xff0c;用postman测试发现报500错误----Current request is not a multipart request&#xff0c;翻译了一下大概意思是 当前请求不是多部分请求&#xff0c;所以就很纳闷。今天特意记录一下 首先我们上传文件时&#xff0c;在postman里面…

如何为豆瓣FM写一个chrome的歌词插件

对于喜欢豆瓣FM的同学来说&#xff0c;没有歌词是件令人苦恼的事&#xff0c;下面我就来总结下怎样为豆瓣FM写一个chrome的歌词插件。 --------------------------------- 1.需要的技能 首先&#xff0c;你要会javascript&#xff0c;其次你要掌握一点chrome的hack&#xff…

设计师解放双手之作!3秒生成风景园林效果图,AIGC赋能景观设计

项目简介 在过去几十年&#xff0c;风景园林经历了从“刀耕火种”的完全手绘设计时代到当下比较流行的参数化设计时代&#xff0c;过去的每一轮技术革新都让风景园林作品的表现形式产生了巨大的改变。随着计算机图像技术的发展&#xff0c;我们有更多的建模和渲染软件辅助提升图…

有哪些中西合璧的建筑设计?

所谓中西合璧&#xff0c;中即中华文化&#xff0c;体系繁多&#xff0c;源远流长&#xff0c;浩如烟海&#xff0c;是世界三大文化体系之一&#xff0c;在历史上曾是东亚文化的中心&#xff0c;一度影响欧洲&#xff1b;西即西方文化&#xff0c;西方物质文明和精神文明&#…

独家 | ChatGPT可以解决分级和分类这样的简单机器学习任务

作者&#xff1a;Damir Yalalov 翻译&#xff1a;陈超 校对&#xff1a;赵茹萱本文约1100字&#xff0c;建议阅读5分钟 本文介绍了ChatGPT如何解决简单的机器学习任务并给出了鸢尾花分类和城市预测两个案例。 一句话概括&#xff1a; ChatGPT可以帮助你完成简单的机器学习任务…

决定AI大模型胜负的关键:解读数据在未来竞争中的角色

随着人工智能的迅猛发展&#xff0c;高质量数据的重要性已愈发明显。以大型语言模型为例&#xff0c;近年来的飞跃式进展在很大程度上依赖于高质量和丰富的训练数据集。相比于GPT-2&#xff0c;GPT-3在模型架构上的改变微乎其微&#xff0c;更大的精力是投入到了收集更大、更高…

RWKV 语言模型:具有 Transformer 优点的 RNN

RWKV 语言模型&#xff0c;这是一个具有巨大潜力的开源大型语言模型。由于 ChatGPT 和一般的大型语言模型最近受到了很多关注。在这篇文章中&#xff0c;我将尝试解释与大多数语言模型&#xff08;transformer&#xff09;相比&#xff0c;RWKV 有何特别之处。 RWKV 可视化 浅谈…

重磅活动!线下报名 | 大模型为什么是AI领域的“兵家必争之地”?

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 离我们自己的“ChatGPT”还有多远&#xff1f; GPT-4 , game changer OR game over&#xff1f; Copilot究竟是打工人的福音还是噩梦&#xff1f; AI TIME今年将持续推出AIGC大咖思辨的线下活动&#xff01;AIG…

火爆首发 | 微软工程师解密全球火出圈的AI科技ChatGPT

首期“支点加速营前沿技术研习社”线上直播课开启报名啦&#xff01; 本次课程由苏州人工智能产业创新中心、图灵社区联合主办&#xff0c;苏州国际科技园和蒲公英孵化器协办&#xff0c;微软&#xff08;亚洲&#xff09;互联网工程院提供技术支持。 与此同时&#xff0c;课程…

百度文心大模型 3.5 斩获7个满分、三个第一;苹果正在测试 AppleGPT 产品;谷歌给员工断网,降低网络攻击风险|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

如何抢演唱会门票,AI给你一套超强攻略

有的歌手的演唱会门票不会放在一个平台&#xff0c;以应该提前做好攻略&#xff0c;那么对于我这种新手小白该如何抢到票呢&#xff0c;其实我们可以通过AI去找到解决办法 1、打开多御浏览器、找到ChatGPT进入页面 二、提前准备好你想去看谁谁的演唱会&#xff0c;他会给你分析…