spring boot 3.3 是当前主力推荐版本,相比3.1在jdk支持(17–22)、aot编译成熟度、配置绑定类型安全、依赖精简(弃用httpclient 4)、security默认行为优化及云原生可观测性(opentelemetry一级支持)等方面均有实质性升级。

Spring Boot 3.3 不是“安装”出来的,而是通过项目构建工具(Maven/Gradle)声明依赖版本来使用的。它和 3.1 的区别不是安装步骤不同,而是底层能力、兼容性、默认行为和关键特性存在实质性升级。2026年企业生产环境已普遍淘汰 3.1(官方已于2024年中停止维护),3.3 是当前主力推荐版本。
最低运行环境要求更严格
3.3 明确支持 JDK 17–22,而 3.1 仅支持到 JDK 20;Maven 要求 ≥3.6.3(3.1 同样要求,但 3.3 对插件生态适配更紧密);Gradle 推荐 8.x 且需显式配置 Java 17+ toolchain。如果你用 JDK 21 或 22,3.1 无法直接运行,必须升到 3.3 或更高。
AOT 编译与原生镜像支持更成熟
3.1 初步引入 AOT 概念,但实际生成原生镜像仍不稳定、耗时长、兼容性差;3.3 将 AOT 作为核心能力重构,集成 Paketo Buildpack 支持一键构建,启动速度提升约 78%,内存占用下降超 60%。启用方式也从手动调用 native-image 工具,变为只需配置 BP_NATIVE_IMAGE=true 和少量注解(如 @AotProxyHint)。
配置绑定与类型安全更进一步
3.1 开始支持 record 类型的 @ConfigurationProperties,但校验和绑定逻辑仍有边界 case;3.3 强化了构造函数绑定的完整性,自动处理嵌套 record、泛型集合、@Validated 级联校验,并在启动时报出更精准的配置错误位置(比如 “app.user.timeout must be > 0” 而非模糊的 “failed to bind property”)。
依赖管理和默认行为更精简
- 3.1 还保留 Apache HttpClient 4 的兼容层(虽已标记 deprecated);3.3 完全移除,强制使用 HttpClient 5 —— 避免类加载冲突和 TLS 1.3 兼容问题
- 3.1 默认启用 Spring Security 的 CSRF 保护(对 REST API 常需手动关闭);3.3 在无 WebMVC/WebFlux 依赖时默认不激活 Security AutoConfig,减少无谓开销
- 3.3 的 Actuator 端点默认更收敛(如 /env、/beans 仅限 dev profile),安全性开箱即用
云原生与可观测性增强
3.3 内置对 OpenTelemetry 1.35+ 的一级支持,自动采集 JVM 指标、HTTP 请求延迟、数据库连接池状态,并可直连 Prometheus/Loki;3.1 依赖第三方 starter 且埋点粒度粗、标签缺失。同时,3.3 的 Kubernetes Probe 配置(liveness/readiness)支持更细粒度的条件判断(如 “数据库连接池空闲数











