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

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

公众号新闻

来源: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 插件文档。


Java后端编程专属技术群

构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!
文明发言,以交流技术职位内推行业探讨为主
广告人士勿入,切勿轻信私聊,防止被骗
加我好友,拉你进群

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Docker Desktop 4.18 发布,带来了大量新特性SpringBoot + 规则引擎 URule,真的很强!再接再厉一下Spring Boot + 规则引擎 URule,太强了!【周末综艺会6期】Spring Garden Show 和板蓝花儿开“回到希腊去!”,也叫文艺复兴。“非秦汉文不读”,也叫古文运动。“不读或少读中国书”,也叫五四新文化运动。在赵谦书札中找字样,找Spring Boot 实现跨域的 5 种方式,总有一种适合你,建议收藏怎样做好学生心理健康工作?一图看懂《全面加强和改进新时代学生心理健康工作专项行动计划(2023—2025年)》教育部就《全面加强和改进新时代学生心理健康工作专项行动计划(2023—2025年)》答记者问Spring循环依赖那些事儿(含Spring详细流程图)重磅!教育部等十七部门联合印发全面加强和改进新时代学生心理健康工作专项行动计划英国伦敦爱丁堡带孩子游记 Spring 2023SpringBoot 插件化开发模式,强烈推荐!现诵《SPRING HOLIDAY偶题 》by AP/盈盈/K2组合SpringBoot 中的自带工具类,开发效率增加一倍!SpringBoot 统一功能处理:用户登录权限校验-拦截器、异常处理、数据格式返回SpringBoot 快速实现IP地址解析Spring Boot 接口加解密,新姿势!和 if else说再见,SpringBoot 这样做参数校验才足够优雅!MacBook Pro 13in 2018 A1989 keep rebooting ( screen/battery/othe母亲说 六真我11系列发布;红魔电竞宇宙大量新品发布;乘联会称赞特斯拉涨价Spring Boot + 规则引擎Drools,强!公司新入职一位大佬,把SpringBoot项目启动时间从7分钟降到了40秒!使用 Netty+SpringBoot 打造的 TCP 长连接通讯方案公司入职一大佬,把Spring Boot系统启动时间从 7分钟降到了 40秒!Spring Boot |如何让你的 bean 在其他 bean 之前完成加载消息称谷歌将推出高端 Chromebook X 品牌,拥有独家软件功能和强大硬件配置Spring break基于 SpringBoot 实现多租户架构:支持应用多租户部署和管理SpringBoot 中的自带工具类,开发效率倍增!登渣甸山SpringBoot项目中使用缓存的正确姿势,太优雅了!美元霸权,天下苦之久也一亩财经 | USPS 提价;Costco 加强会员卡限制;DoorDash 推出新功能;人民币兑美国汇率破 7.25OpenBSD 7.3 发布,包含新功能和更新 | Linux 中国SpringBoot 多数据源及事务解决方案SpringBoot+Mybatis 如何实现流式查询,你知道吗?数据可视化:基于 Echarts + SpringBoot 的动态实时大屏银行监管系统【源码】
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。