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

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.PostgreSQLDialect
      hibernate.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 {
    @Bean
    public MyService service() {
        return new MyService();
    }
}

11. 构建镜像支持扩展

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

示例

复制代码
bash 复制代码
./mvnw spring-boot:build-image -Dspring-boot.build-image.environment.BUILDPACK_ENV=<custom-value>

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

相关推荐
黄交大彭于晏4 分钟前
发送文件脚本源码版本
java·linux·windows
钮钴禄·爱因斯晨10 分钟前
Java 面向对象进阶之多态:从概念到实践的深度解析
java·开发语言·数据结构
鸽子炖汤10 分钟前
Java中==和equals的区别
java·开发语言·jvm
hstar952729 分钟前
二、即时通讯系统设计经验
java·架构
风象南1 小时前
SpringBoot的4种死信队列处理方式
java·spring boot·后端
互联网全栈架构2 小时前
遨游Spring AI:第一盘菜Hello World
java·人工智能·后端·spring
优秀的颜3 小时前
计算机基础知识(第五篇)
java·开发语言·分布式
BillKu3 小时前
Java严格模式withResolverStyle解析日期错误及解决方案
java
网安INF3 小时前
ElGamal加密算法:离散对数难题的安全基石
java·网络安全·密码学
AWS官方合作商4 小时前
在CSDN发布AWS Proton解决方案:实现云原生应用的标准化部署
java·云原生·aws