springboot3.0+GraalVM搭建云原生环境
springboot3.0和GraalVM结合实现云原生实践,将java应用的启动速度降低到1秒内,内存占用最低几十兆
一.GraalVM环境搭建
1.首先下载安装GraalVM
选择java17.windows(amd64),最好选择VPN下载
下载完成以后解压,如图
然后配置环境变量
配置GRAALVM_HOME,如图
然后在PATH里面添加
%GRAALVM_HOME%\bin
配置完成以后,在cmd里面执行java -version,可以看到jdk已经是GraalVM
2.安装本地镜像
在cmd执行命令gu install native-image如下图,说明安装成功,这一步最好是VPN,比较省事,如果没有VPN,可以先去github下载下来,安装
3.安装Visual Studio的C++桌面开发环境
官网:https://visualstudio.microsoft.com/
选择 下载Windows版,并选择Community 社区版本下载,安装,如下图
安装完成以后,写个测试的
public class Test{
public static void main(String[] args) throws Exception {
System.out.print("hello");
}
}
使用native的命令行,在D:\soft\graalvm-ce-java17-22.3.0\bin 目录下面执行如下命令,先javac Test.java编译class文件
然后执行 :native-image.cmd Test打包镜像,大概40秒,就可以生成一个Test.exe的可以执行文件
生成的这个Test.exe就可以到处运行了,如图,使用powershell执行
这个可执行文件大小为11M.
以上为打包普通java文件,下面讲述搭建springboot3.0
二.springboot3.0+GraalVM搭建
1.idea安装GraalVM环境
2.新建springboot3.0项目
拿来主义可以直接移步码云,觉得不错可以给个star,感谢了
https://gitee.com/WuSuoWeiYouWuSuoWeiWu/springboot3
pom等依赖如下
<?xml version="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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>springboot3</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot3</name>
<description>springboot3</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
打开native命令行,进入项目目录下,执行
mvn -Pnative clean native:compile
如下图
执行结果如下
打包可能需要几分钟
这时候去项目目录下就可以看到springboot3.exe,可以在powershell里面运行 了
可以看到启动使用在100毫秒左右。访问下里面的接口
GraalVM作为新一代的虚拟机,它可以以原生镜像的方式运行SpringBoot应用程序,速度更快,内存占用更小,相较于Hotspot等传统的虚拟机优势自然是不言而喻,在现如今云原生的趋势下,java的一次编译,随处运行的优势被大大削弱,而GraalVM的到来可能又会给这一门语言注入新的活力。
更多推荐
所有评论(0)