Spring Boot 3.x 原生镜像需 JDK 17+、Spring Boot 3.2+(推荐3.3+)、匹配的 GraalVM 22.3+,通过 Spring AOT 和构建插件完成,禁用 runtime 字节码增强,显式注册反射与资源。

Spring Boot 3.x 开始原生支持 GraalVM 原生镜像(Native Image),但需满足几个关键前提:使用 JDK 17+、Spring Boot 3.2+(推荐 3.3+)、GraalVM 22.3+(对应 JDK 17)或更高版本,并启用 Spring AOT(Ahead-of-Time)处理。直接用 native-image 工具已过时,现在统一通过 Spring Boot 的构建插件 + GraalVM 编译器完成。
✅ 前提准备:环境与依赖对齐
原生镜像失败大多源于版本不兼容。务必确认以下组合:
- GraalVM 版本:下载 匹配 JDK 17 的 GraalVM CE(如
graalvm-ce-java17-22.3.2或23.1.0),不要用 JDK 21 的 GraalVM 构建 JDK 17 的项目 - Spring Boot:3.2.x 起支持原生,但 3.3.x 对 AOT 和 native 支持更稳定,建议起步用
3.3.0 - 构建工具:Maven(
spring-boot-maven-plugin3.3.0+)自动集成 native 构建逻辑;Gradle 同理(spring-boot-gradle-plugin) - 本地需安装
native-image组件:执行$GRAALVM_HOME/bin/gu install native-image
⚙️ Maven 配置:启用 native 构建
在 pom.xml 中确保启用 Spring AOT 和 native profile:
- 添加
spring-boot-maven-plugin并启用nativegoal(Spring Boot 3.3 默认支持) - 可选:定义
nativeprofile 激活构建参数(如-Pnative) - 若项目含反射、动态代理、JNI 或序列化(如 Jackson、JPA 实体),需通过
@RegisterReflectionForBinding、resources/META-INF/native-image/配置文件显式声明
示例插件配置(无需额外 native-image 插件):
立即学习“Java免费学习笔记(深入)”;










