02.2、Spring 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 官方资源:
- Spring Boot 3 官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/
- Spring Boot 3 新特性:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes
- Spring Boot 3 迁移指南:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide
核心改进概览
原生镜像支持(GraalVM)
GraalVM Native Image
原生镜像优势:
- 启动速度:提升 10-100 倍(毫秒级启动)
- 内存占用:降低 50-70%
- 云原生:适合 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 内置可观测性:
- Metrics:内置 Micrometer,自动收集指标
- Traces:支持 OpenTelemetry,自动追踪
- Logs:结构化日志,更好的日志分析
自动指标收集
Spring Boot 3 自动收集以下指标:
- HTTP 请求指标
- JVM 指标(内存、GC、线程)
- 数据库连接池指标
- 自定义业务指标
示例配置:
management: metrics: export: prometheus: enabled: true endpoints: web: exposure: include: metrics,health,info
配置属性改进
类型安全的配置属性
Spring Boot 3 改进:
- 类型安全:编译时检查配置属性
- IDE 支持:更好的代码补全和验证
- 文档生成:自动生成配置属性文档
配置属性示例
// 定义配置属性类 @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+
关键变更:
- javax → jakarta:所有 javax 包名改为 jakarta
- 依赖版本更新:所有依赖升级到最新版本
- 移除废弃依赖:移除了一些废弃的依赖
包名变更示例
// 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 官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/
- Spring Boot 3 新特性:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes
- Spring Boot 3 迁移指南:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide
本节小结
在本节中,我们学习了:
第一个是 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 的版本关系,学习如何查看官方文档和选择正确的版本。