Spring Boot 3.4.0 发布:功能概览与示例

ops/2024/12/1 4:33:12/

Spring Boot 3.4.0 带来了许多增强功能,使现代应用开发更加高效、便捷和强大。以下是最新功能的完整概述,以及一些帮助您快速入门的代码示例。


1. 应用程序版本管理

Spring Boot 引入了 spring.application.version 属性,方便开发者设置和访问应用程序版本。

示例
application.properties 中:

spring.application.version=1.2.0

在代码中访问:

java">@Value("${spring.application.version}")
private String appVersion;@PostConstruct
public void printVersion() {System.out.println("App Version: " + appVersion);
}

2. 虚拟线程改进

Spring 现原生支持虚拟线程,可用于任务调度和异步处理,无需再添加 @EnableScheduling 注解。

示例

java">@Component
public class VirtualThreadExample {@Scheduled(fixedRate = 2000)public void task() {System.out.println("Running on thread: " + Thread.currentThread());}
}

3. Docker Compose 支持增强

支持多个 Docker Compose 文件,适用于不同环境的配置合并。

示例

java">spring.docker.compose.files=docker-compose.override.yml,docker-compose.prod.yml

4. Prometheus 1.x 客户端支持

通过支持 Prometheus 1.x 客户端,进一步提升了可观察性。

示例
添加依赖:

java"><dependency><groupId>io.prometheus</groupId><artifactId>simpleclient</artifactId><version>1.0.0</version>
</dependency>

5. 结构化日志改进

启用 JSON 或结构化日志记录时,Spring Boot 的启动横幅会自动禁用,以减少日志混乱。

示例
logback-spring.xml 配置:

java"><configuration><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>{"timestamp":"%d","level":"%p","message":"%m"}</pattern></encoder></appender>
</configuration>

6. SBOM 执行器端点

新增 SBOM(软件物料清单)端点,支持软件供应链安全。

示例
启用 SBOM:

java">management.endpoint.sbom.enabled=true

访问路径:/actuator/sbom


7. ApplicationContextRunner 增强

增强了 ApplicationContextRunner,支持自定义配置的运行和测试。

示例

java">new ApplicationContextRunner().withPropertyValues("spring.application.name=TestApp").run(context -> assertThat(context).hasSingleBean(SomeBean.class));

8. Hibernate 自动配置增强

支持 Hibernate 的本机属性,提升了兼容性和配置灵活性。

示例

java">spring:jpa:properties:hibernate.dialect: org.hibernate.dialect.PostgreSQLDialecthibernate.show_sql: true

9. 新的执行器特性

  • 系统端点增强:新增 JVM 相关详情(如可用处理器、运行时间)。
  • 指标收集优化:提高了 HTTP 交换和请求正文指标的收集效率。

示例

java">management.endpoint.system.enabled=true
management.metrics.enable.http=true

10. 条件注解改进

@ConditionalOnAvailableEndpoint 支持简化语法,允许通过值别名进行配置。

示例

java">@Configuration
@ConditionalOnAvailableEndpoint(MyCustomEndpoint.class)
public class MyConfig {@Beanpublic MyService service() {return new MyService();}
}

11. 构建镜像支持扩展

提供了更多选项用于自定义 Spring Boot 容器镜像的构建过程。

示例

 
./mvnw spring-boot:build-image -Dspring-boot.build-image.environment.BUILDPACK_ENV=<custom-value>

Spring Boot 3.4.0 的这些新功能将显著提升开发效率和项目质量。您可以从 官方文档 获取更多详细信息,立即尝试新版本吧!


http://www.ppmy.cn/ops/138107.html

相关文章

抓包之使用chrome的network面板

写在前面 本文看下工作中非常非常常用的chrome的network面板功能。 官方介绍&#xff1a;地址。 1&#xff1a;前置 1.1&#xff1a;打开 右键-》检查&#xff0c;或者F12。 1.2&#xff1a;组成部分 2&#xff1a;控制器常用功能 详细如下图&#xff1a; 接着我们挑选其…

hhdb数据库介绍(10-19)

监控 智能物理拓扑 物理拓扑图主要以服务器为视角展示集群组件与服务器的所属关系&#xff0c;同时可查看服务器资源的使用情况以及各集群组件服务运行状态。使用前需保证为集群服务器配置了可用的SSH连接信息&#xff0c;否则只能查看当前服务器与集群组件的所属关系&#x…

CSS:Web美学的革新之旅

自HTML的诞生之日起&#xff0c;Web页面设计便踏上了一段不断进化的旅程。起初&#xff0c;HTML作为构建网页的骨架&#xff0c;仅承载着最基本的文本结构与少量显示属性。然而&#xff0c;随着互联网的蓬勃发展和用户对视觉体验需求的日益增长&#xff0c;HTML开始不堪重负&am…

(即插即用模块-Attention部分) 二十、(2021) GAA 门控轴向注意力

文章目录 1、Gated Axial-Attention2、代码实现 paper&#xff1a;Medical Transformer: Gated Axial-Attention for Medical Image Segmentation Code&#xff1a;https://github.com/jeya-maria-jose/Medical-Transformer 1、Gated Axial-Attention 论文首先分析了 ViTs 在训…

Applied Intelligence投稿

一、关于手稿格式&#xff1a; 1、该期刊是一个二区的&#xff0c;模板使用Springer nature格式&#xff0c; 期刊投稿要求&#xff0c;详细期刊投稿指南&#xff0c;大部分按Soringernature模板即可&#xff0c;图片表格声明参考文献命名要求需注意。 2、参考文献&#xff…

SQL Server 实战 - 多种连接

目录 背景 一、多种连接 1. 复合连接条件 2. 跨数据库连接 3. 隐连接 4. 自连接 5. 多表外连接 6. UNION ALL 二、一个对比例子 背景 本专栏文章以 SAP 实施顾问在实施项目中需要掌握的 sql 语句为偏向进行选题&#xff1a; 用例&#xff1a;SAP B1 的数据库工具&am…

案例分析:嵌入式边缘计算机ARMxy在工商储能柜新能源应用

可再生能源的快速发展和电力市场的改革深化&#xff0c;工商储能技术正逐渐成为企业能源管理和成本优化的重要工具。特别是在一些大型商业和工业场所&#xff0c;储能系统不仅可以平滑负荷曲线&#xff0c;减少电费支出&#xff0c;还能提高电网的稳定性。然而&#xff0c;为了…

前端网络请求:从 XMLHttpRequest 到 Axios

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vue篇专栏内容:前端网络请求&#xff1a;从 XMLHttpRequest 到 Axios 前言 在网络应用中&#xff0c;前后端的数据…