GraalVM是开发人员编写和执行Java代码的工具。具体来说,GraalVM是由Oracle创建的Java虚拟机(JVM)和Java开发工具包(JDK)。它是一个高性能的运行时,可以提高应用程序的性能和效率。
GraalVM的目标包括:编写一个更快、更易于维护的编译器,提高在JVM上运行的语言的性能,减少应用程序启动时间,将多语言支持集成到Java生态系统中,以及为此提供一组编程工具。
GraalVM向JDK添加了一个优化编译器,它为各种语言提供性能优化,并为多语言应用程序提供互操作性。除了支持Java代码,GraalVM还支持其他编程语言,包括Scala、Kotlin、Groovy、Clojure、R、Python、JavaScript和Ruby。从本质上讲,GraalVM允许开发人员在单个应用程序中以多种语言和库高效地运行代码。
一,准备工作:
1. 安装 GraalVM
下载地址:https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-22.3.0
解压到本地
2.配置 GRAALVM_HOME 环境变量
3, Path 配置
4.验证安装结果:
表示环境配置完成;
二. 安装 native image,用于构建
1. 由于网络问题,需要手动下载对应版本的
2.本地cmd,执行命令
gu install -L native-image-installable-svm-java11-windows-amd64-22.0.0.2.jar
3.验证;可以使用命令查看,已经安装的功能
gu list
安装成功;
三,搭建 spring boot 3的项目
IDEA 使用的版本 2022.3
注意选择刚安装的 graalvm sdk;
2. 配置项目 pom 文件
- "1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0modelVersion>
-
- <parent>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-parentartifactId>
- <version>3.0.0version>
- parent>
-
- <groupId>你的组织名groupId>
- <artifactId>你的项目名artifactId>
- <version>1.0-SNAPSHOTversion>
- <packaging>pompackaging>
-
-
- <properties>
- <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
- properties>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-webartifactId>
- dependency>
- <dependency>
- <groupId>org.projectlombokgroupId>
- <artifactId>lombokartifactId>
- <optional>trueoptional>
- dependency>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-testartifactId>
- <scope>testscope>
- dependency>
-
- dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.graalvm.buildtoolsgroupId>
- <artifactId>native-maven-pluginartifactId>
- <extensions>trueextensions>
- <executions>
- <execution>
- <id>build-nativeid>
- <goals>
- <goal>compile-no-forkgoal>
- goals>
- <phase>packagephase>
- execution>
- <execution>
- <id>test-nativeid>
- <goals>
- <goal>testgoal>
- goals>
- <phase>testphase>
- execution>
- executions>
- <configuration>
-
- <mainClass>com.fate.boot3.Boot3ApplicationmainClass>
-
- <imageName>boot-testimageName>
- <buildArgs>
- <buildArg>--verbosebuildArg>
- buildArgs>
- configuration>
- plugin>
- <plugin>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-maven-pluginartifactId>
- <configuration>
- <excludes>
- <exclude>
- <groupId>org.projectlombokgroupId>
- <artifactId>lombokartifactId>
- exclude>
- excludes>
- configuration>
- plugin>
- plugins>
- build>
-
- project>
3.其他的先不要配置,和springboot 2一样的写法,写个简单的测试方法;
4. 启动