主题
新增支持和变更
Java 17+ 和 Jakarta EE 支持:Spring Boot 3.0 最低要求 Java 17,并且所有底层依赖项从 Java EE 迁移到了 Jakarta EE API。这意味着任何以
javax.
开头的包名都变更为jakarta.
。GraalVM 原生镜像支持:Spring Boot 3.0 正式支持 GraalVM 原生镜像编译,这可以提供显著的内存和启动性能改进。
Micrometer 和 Micrometer Tracing:提高了应用的可观察性,支持集成 Micrometer 1.10+,引入了全新的可观察 API 并自动配置 Micrometer Tracing。
AOT(提前编译)支持:为了优化启动时间和减少内存占用,Spring Boot 提供了 AOT 处理能力,允许在构建时进行优化。
移除对旧版的向后兼容代码:例如,
spring.factories
文件已经被弃用,取而代之的是META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件用于注册自动配置。类型安全的配置属性:增强了
@ConfigurationProperties
注解的功能,包括构造函数绑定和默认值的支持。
SpringBoot3的新特性
Java版本要求:Spring Boot 3.0最低支持Java 17,表明了Spring社区对最新Java长期支持(LTS)版本的承诺。
Spring Framework 6.0:与Spring Boot 3.0配套的是Spring Framework 6.0,包含了框架层面的新特性和改进。
Jakarta EE迁移:Spring Boot 3.0迁移到了Jakarta命名空间,遵循Jakarta EE 9标准,这是从老的Java EE规范向新的Jakarta EE生态系统的转变。
依赖更改:移除了不再推荐使用的某些技术的集成,例如ActiveMQ和Atomikos等,同时更新了对其他组件的支持以适应新版本的要求。
函数式接口增强:SpringMVC 5.2及以后版本允许使用函数式编程模型来定义Web请求处理流程。
配置文件变更:关于自动配置的元数据可能有所调整,比如
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
。Spring Data JDBC自动配置优化:为Spring Data JDBC提供了更灵活的自动配置选项。
Micrometer观察API:加强了对Micrometer可观察性API的支持,可以主动将监控数据报告给Zipkin等追踪系统,并提供自定义追踪参数配置功能。
Prometheus示例自动配置:对于Prometheus这样的度量指标收集工具,Spring Boot 3.0提供了更为方便的自动配置示例。
综上所述,Spring Boot 3.0旨在通过拥抱新技术标准、提高性能、简化配置以及提升开发者体验来持续推动Java生态系统的发展。
todo
Micrometer观察API
GraalVM 原生镜像支持
AOT 支持