GraalVM | | 20.1.0.r11 | grl | | 20.1.0.r11-grl
| | 20.1.0.r8 | grl | | 20.1.0.r8-grl
| | 19.3.1.r11 | grl | | 19.3.1.r11-grl
…
列表本身要长得多,您可以看到这种方法的奇妙的简单性: 永远不要再弄乱JDK安装! 现在要安装基于JDK11的GraalVM,只需运行:
sdk install java 20.1.0.r11-grl
SDKMAN现在为我们安装GraalVM。要正确配置PATH变量,可能需要重新启动控制台。如果一切顺利,您应该看到 java-version
输出如下:
$ java -version
openjdk version “11.0.7” 2020-04-14
OpenJDK Runtime Environment GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02)
OpenJDK 64-Bit Server VM GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02, mixed mode, sharing)
如前所述,我们需要GraalVM的子项目Native Image来编译Spring Boot应用程序。因此,GraalVM附带了专用工具 gu–
GraalVM更新程序。要列出当前安装的所有GraalVM项目,请运行:
$ gu list
ComponentId Version Component name Origin
graalvm 20.1.0 GraalVM Core
要安装GraalVM本机映像,只需运行:
gu install native-image
之后,本机映像命令应该可以为我们工作,并且可以进行编译工作:
$ native-image --version
GraalVM Version 20.1.0 (Java Version 11.0.7)
创建一个简单的WebFlux REST-Spring Boot应用程序
为了从Spring Boot应用程序创建GraalVM本机映像,我们至少需要一个。最简单的方法就是现在就创建。所以正如著名的starbuxman所建议的,我们需要从Start-Dot-Spring-Dot-IO开始!
【图片】
在那里,我们应该选择至少2.3.0版本的SpringBoot版本。对Spring的GraalVM本地映像支持还处于初级阶段,而且每天都在进步。所以文件上说:
[选择上面的一个版本]SpringBoot2.3.0.M1(您可能可以使用Boot2.2.X,但不能使用2.1或更早版本)
为了构建一个restfulspring启动应用程序,我们需要在这里选择Spring Reactive Web依赖。下载骨架之后,我们继续创建一个简单的服务。在Spring的Reactive方式中,我们首先需要一个类似 HelloHandler.java
的处理程序:
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.server.ServerRe