Spring Boot GraalVM Native Image
Spring Boot 官方文档中把 Java 应用编译成 GraalVM 原生可执行文件的指南,讲 Maven、Gradle 与 Buildpacks 三种构建路径,给要缩短启动时间的后端开发者。
这是 Spring Boot 官方文档里的一篇操作指南,主题是把一个普通的 Spring Boot 应用编译成 GraalVM 原生镜像(native image)。原生镜像把 Java 应用连同依赖一起提前编译成本机可执行文件,换来更快的启动和更低的内存占用,代价是构建慢、部分反射和动态特性需要额外配置。这篇文档就是带你把第一个例子跑通。
文档讲了什么
开头给一个示例应用,然后分两条路线构建原生镜像:一条用 Cloud Native Buildpacks,不需要本机装 GraalVM;另一条用 Native Build Tools,要求本机有 GraalVM 发行版和对应的 native-image 工具。两条路线都分别给出 Maven 和 Gradle 的命令写法,最后都落到「运行示例」一节,验证编译出来的可执行文件能启动。
- Buildpacks 路线:一条命令打包成容器镜像,适合已有 Docker 环境的人
- Native Build Tools 路线:在 Maven 或 Gradle 里直接产出本机可执行文件
- 系统要求与前置条件:文档单独列出,构建前要先对照
适合谁
已经在写 Spring Boot 服务、想评估原生镜像是否值得迁移的后端开发者,或者需要给容器化部署压缩启动时间的人。文档假设你熟悉 Maven 或 Gradle,也大致知道 Spring Boot 应用怎么跑起来,不解释 Java 和构建工具本身。
要注意的地方
这是文档而不是一个可以安装的软件,页面本身不收费也不需要登录。原生镜像构建对内存和 CPU 要求不低,第一次编译往往要等上几分钟;反射、动态代理、序列化这类运行时行为在原生镜像里不会自动生效,需要按文档里的提示做 AOT 处理。文档对应 Spring Boot 4.1.2 版本,不同版本的命令和配置项会有出入,照做时先确认自己项目的版本。