GraalVM 版本:graalvm-ce-java17-22.3.0
SpringBoot3.0 中最重要的特性就是对 GraalVM 的支持,从而达到更快的启动速度,有两种使用方式。
因为需要利用 GraalVM 来打包可执行文件,所以需要你的机器上安装了 GraalVM。
新建一个 SpringBoot 3.0 的 Maven 工程,引入 parent、starter 依赖、以及两个重要的插件:
org.graalvm.buildtools native-maven-plugin org.springframework.boot spring-boot-maven-plugin
复制代码
然后执行:
mvn -Pnative clean native:compile
复制代码
需要花费一些时间...
执行完能看到 BUILD SUCCESS:
然后进入 target,就能看到一个 exe 文件:
我们可以直接运行该 exe 来启动我们的 SpringBoot 应用:
这样,我们就可以把这个可执行文件发送给另外的 windows 机器了,并且对方机器都不需要安装 JDK 就能运行我们的 SpringBoot 程序(亲自测过,确实能直接运行)。
不过大家应该发现了问题,在 windows 上编译出来的是 exe 文件,它是不能在 linux 上运行的,那么怎么办呢?
我们可以直接把 SpringBoot 应用对应的本地可执行文件构建为一个 Docker 镜像,这样就能跨操作系统运行了。
Buildpacks,类似 Dockerfile 的镜像构建技术
注意要安装 docker,并启动 docker
注意这种方式并不要求你机器上安装了 GraalVM,会由 SpringBoot 插件利用/paketo-buildpacks/native-image 来生成本地可执行文件,然后打入到容器中
Docker 镜像名字中不能有大写字母,我们可以配置镜像的名字:
17 17 UTF-8 springboot3demo
复制代码
然后执行:
mvn -Pnative spring-boot:build-image