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

相关推荐
陌殇殇13 分钟前
001 Spring AI Alibaba框架整合百炼大模型平台 — 快速入门
人工智能·spring boot·ai
言慢行善27 分钟前
sqlserver模糊查询问题
java·数据库·sqlserver
专吃海绵宝宝菠萝屋的派大星33 分钟前
使用Dify对接自己开发的mcp
java·服务器·前端
大数据新鸟1 小时前
操作系统之虚拟内存
java·服务器·网络
Tong Z1 小时前
常见的限流算法和实现原理
java·开发语言
凭君语未可1 小时前
Java 中的实现类是什么
java·开发语言
He少年1 小时前
【基础知识、Skill、Rules和MCP案例介绍】
java·前端·python
克里斯蒂亚诺更新1 小时前
myeclipse的pojie
java·ide·myeclipse
迷藏4941 小时前
**eBPF实战进阶:从零构建网络流量监控与过滤系统**在现代云原生架构中,**网络可观测性**和**安全隔离**已成为
java·网络·python·云原生·架构