02.2Spring Boot 3新特性

分类: Spring 6和Spring Boot 3基础

Spring Boot 3 新特性

Spring Boot 3 是 Spring Boot 的最新主版本,于 2022 年 11 月发布。它基于 Spring 6,要求 Java 17+,并引入了许多重要的新特性和改进。理解 Spring Boot 3 的新特性,是掌握现代 Spring 开发的关键。

本节将学习:Spring Boot 3 官网特性讲解、原生镜像支持(GraalVM)、可观测性增强、配置属性改进,以及依赖升级。

Spring Boot 3 官网特性讲解

官方文档导航

Spring Boot 3 官方资源:

核心改进概览

原生镜像支持(GraalVM)

GraalVM Native Image

原生镜像优势:

  1. 启动速度:提升 10-100 倍(毫秒级启动)
  2. 内存占用:降低 50-70%
  3. 云原生:适合 Serverless 和容器化部署

创建原生镜像

使用 Spring Boot 3 创建原生镜像:

# 方式1:使用 Spring Boot Maven 插件 mvn spring-boot:build-image # 方式2:使用 GraalVM Native Build Tools mvn -Pnative native:compile

pom.xml 配置:

<build> <plugins> <plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

可观测性增强

Micrometer 集成

Spring Boot 3 内置可观测性:

  1. Metrics:内置 Micrometer,自动收集指标
  2. Traces:支持 OpenTelemetry,自动追踪
  3. Logs:结构化日志,更好的日志分析

自动指标收集

Spring Boot 3 自动收集以下指标:

  • HTTP 请求指标
  • JVM 指标(内存、GC、线程)
  • 数据库连接池指标
  • 自定义业务指标

示例配置:

management: metrics: export: prometheus: enabled: true endpoints: web: exposure: include: metrics,health,info

配置属性改进

类型安全的配置属性

Spring Boot 3 改进:

  1. 类型安全:编译时检查配置属性
  2. IDE 支持:更好的代码补全和验证
  3. 文档生成:自动生成配置属性文档

配置属性示例

// 定义配置属性类 @ConfigurationProperties(prefix = "app") public class AppProperties { private String name; private int port; private Database database; // getters and setters public static class Database { private String url; private String username; private String password; // getters and setters } } // 启用配置属性 @SpringBootApplication @EnableConfigurationProperties(AppProperties.class) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } // application.yml app: name: my-app port: 8080 database: url: jdbc:mysql://localhost:3306/mydb username: root password: password

依赖升级

Jakarta EE 9+

关键变更:

  1. javax → jakarta:所有 javax 包名改为 jakarta
  2. 依赖版本更新:所有依赖升级到最新版本
  3. 移除废弃依赖:移除了一些废弃的依赖

包名变更示例

// Spring Boot 2.x import javax.servlet.http.HttpServletRequest; import javax.persistence.Entity; // Spring Boot 3.x import jakarta.servlet.http.HttpServletRequest; import jakarta.persistence.Entity;

迁移注意:

  • 需要更新所有 import 语句
  • 第三方库需要支持 Jakarta EE 9+
  • 检查所有依赖的兼容性

官方资源

本节小结

在本节中,我们学习了:

第一个是 Spring Boot 3 官网特性。 了解了 Spring Boot 3 的核心改进和新特性。

第二个是原生镜像支持。 GraalVM Native Image 支持,大幅提升启动速度和降低内存占用。

第三个是可观测性增强。 内置 Micrometer 和 OpenTelemetry 支持,自动收集指标和追踪。

第四个是配置属性改进。 类型安全的配置属性,更好的 IDE 支持和文档生成。

第五个是依赖升级。 Jakarta EE 9+ 支持,所有依赖升级到最新版本。

这就是 Spring Boot 3 新特性。理解这些特性,是掌握现代 Spring Boot 开发的关键。

在下一节,我们将了解 Spring 6 与 Spring Boot 3 的版本关系,学习如何查看官方文档和选择正确的版本。