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

news/2024/12/12 1:53:38/

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/news/1554368.html

相关文章

Android CoordinatorLayout:打造高效交互界面的利器

目录 一、CoordinatorLayout 介绍及特点 二、使用方法 2.1 创建 CoordinatorLayout 布局 2.2 添加需要协调的子视图 2.3 自定义 Behavior 三、结语 相关推荐 在Android开发中&#xff0c;面对复杂多变的用户界面需求&#xff0c;CoordinatorLayout以其强大的交互管理能力…

Android13应用在后台录音无声音

最近在做项目&#xff0c;对讲应用放在后台&#xff0c;录音无声音&#xff0c;最后解决。 一 现象 对讲应用运行在后台&#xff0c;录音无效查看日志&#xff0c;AudioRecorder录音回调全是0&#xff1b;状态栏无通知&#xff0c;无申请通知权限。 二解决 看了现象应该能够…

Open AI 推出 ChatGPT Pro

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

ensp实验-vrrp多网关配置

一、交换机与路由的配置区别 1. 角色定义交换机&#xff1a; Master 或 Backup: 交换机通常作为 Master 或 Backup 设备参与 VRRP&#xff0c;负责在主设备故障时接替其工作。路由器&#xff1a; Master 或 Backup: 路由器同样可以作为 Master 或 Backup 设备…

Paddle Inference部署推理(二十四)

二十四&#xff1a;Paddle Inference推理 &#xff08;C&#xff09;API详解 9. 启用内存优化 API定义如下&#xff1a; // 开启内存/显存复用&#xff0c;具体降低内存效果取决于模型结构 // 参数&#xff1a;None // 返回&#xff1a;None void EnableMemoryOptim();// 判…

现代C++16 pair

文章目录 1. **概述**2. **成员类型和成员对象**3. **构造函数**4. **成员函数**5. **非成员函数**5.1 **make_pair**5.2 **比较运算符**5.3 **std::swap**5.4 **std::get** 6. **辅助类**6.1 **std::tuple_size 和 std::tuple_element**6.2 **std::common_type 和 std::basic_…

书生浦语第四期L1G4000——InternLM + LlamaIndex RAG 实践

1.环境、模型准备 1.1 配置基础环境 安装python依赖包 pip install einops0.7.0 protobuf5.26.1 1.2 安装Llamaindex pip install llama-index0.11.20 pip install llama-index-llms-replicate0.3.0 pip install llama-index-llms-openai-like0.2.0 pip install llama-ind…

自回归模型(AR )

最近看到一些模型使用了自回归方法&#xff0c;这里就学习一下整理一下相关内容方便以后查阅。 自回归模型&#xff08;AR &#xff09; 自回归模型&#xff08;AR &#xff09;AR 模型的引入AR 模型的定义参数的估计方法模型阶数选择平稳性与因果性条件自相关与偏自相关函数优…