體驗一下正式釋出的SpringBoot3.0

體驗一下正式釋出的SpringBoot3.0

GraalVM 版本:graalvm-ce-java17-22。3。0

SpringBoot3。0 中最重要的特性就是對 GraalVM 的支援,從而達到更快的啟動速度,有兩種使用方式。

利用 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:

體驗一下正式釋出的SpringBoot3.0

然後進入 target,就能看到一個 exe 檔案:

體驗一下正式釋出的SpringBoot3.0

我們可以直接執行該 exe 來啟動我們的 SpringBoot 應用:

體驗一下正式釋出的SpringBoot3.0

這樣,我們就可以把這個可執行檔案傳送給另外的 windows 機器了,並且對方機器都不需要安裝 JDK 就能執行我們的 SpringBoot 程式(親自測過,確實能直接執行)。

不過大家應該發現了問題,在 windows 上編譯出來的是 exe 檔案,它是不能在 linux 上執行的,那麼怎麼辦呢?

利用 Buildpacks 構建可執行檔案 Docker 映象

我們可以直接把 SpringBoot 應用對應的本地可執行檔案構建為一個 Docker 映象,這樣就能跨作業系統運行了。

Buildpacks,類似 Dockerfile 的映象構建技術

注意要安裝 docker,並啟動 docker

注意這種方式並不要求你機器上安裝了 GraalVM,會由 SpringBoot 外掛利用/paketo-buildpacks/native-image 來生成本地可執行檔案,然後打入到容器中

Docker 映象名字中不能有大寫字母,我們可以配置映象的名字:

17 17 UTF-8 springboot3demo複製程式碼

然後執行:

mvn -Pnative spring-boot:build-image複製程式碼

來生成 Docker 映象。

執行完之後,就能看到 docker 映象了:

體驗一下正式釋出的SpringBoot3.0

然後就可以執行容器了:

docker run ——rm -p 8080:8080 springboot3demo

參考

https://docs。spring。io/spring-boot/docs/current/reference/html/native-image。html#native-image。developing-your-first-application。native-build-tools

https://www。graalvm。org/22。2/reference-manual/native-image/guides/build-spring-boot-app-into-native-executable/