Springboot3本地编译exe文件(实现快速启动仅需200ms)

news/2024/7/7 19:12:57 标签: spring boot, 后端, java

1. 准备好grallvm版本的JDK

jdk17以上 (springboot3最低支持jdk17)

grallvm-jdk17

Download GraalVM 下载界面

2. 配置maven 3.9.x 及以上

maven 3.9.8

Maven – Download Apache Maven

3.创建SpringBoot项目

3.1 项目所需依赖

记得选择这俩个进行开发

 3.2 简单的helloworld编写

 HelloWorldController

@RestController
public class HelloWorldController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

 运行观察发现启动时间在2-3秒 如果项目增多的话启动时间会更久,一般在十秒及以上

 3.3 本地编译

 1.分步编译 先compile(mvn -Pnative compile)

-> spring-boot:process-aot (mvn -Pnative spring-boot:process-aot)

->native:compile-no-fork (mvn -Pnative native:compile-no-fork)

2.直接编译 native compile (mvn -Pnative native:compile)

 3.4 编译产物 exe文件(windows下编译产物为exe, linux下则为可执行文件无后缀名)

编译时间会很久 3分钟甚至更长

 运行一下查看运行时间只有0.14s!!!

对比一下内存发现真的很省内存!!! 239:31 对于以后容器化部署有了新的思路


http://www.niftyadmin.cn/n/5534833.html

相关文章

为什么 npm run serve 正常,npm run build 就报错:digital envelope routines::unsupported

这个错误通常与 Node.js 版本和使用的加密算法有关。让我解释一下原因和可能的解决方案: 错误原因 这个错误(“error:0308010C:digital envelope routines::unsupported”)通常发生在以下情况: 使用较新版本的 Node.js&#xf…

mpeg格式怎么转换成mp4?这四种转换方法非常好用!

mpeg格式怎么转换成mp4?在数字视频领域中,MPEG格式算是相对冷门的一种选择,然而,选择这种格式却不是没有代价的,首先,MPEG采用了有损压缩技术,这意味着在视频处理过程中,会丢失一些细…

RabbitMQ入门教程(精细版二带图)

目录 六 RabbitMQ工作模式 6.1Hello World简单模式 6.1.1 什么是简单模式 6.1.2 RabbitMQ管理界面操作 6.1.3 生产者代码 6.1.4 消费者代码 6.2 Work queues工作队列模式 6.2.1 什么是工作队列模式 6.2.2 RabbitMQ管理界面操作 6.2.3 生产者代码 6.2.4 消费者代码 …

js学习--制作猜数字

猜数字制作 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><script>function fun() {alert("1-100猜数字");let num Math.floor(Math.random() * 100) 1;for …

【mybatis】mybatis-plus

1、简介 官网&#xff1a;MyBatis-Plus &#x1f680; 为简化开发而生 MyBatis-Plus&#xff08;简称MP&#xff09;是一个MyBatis的增强工具&#xff0c;它在MyBatis的基础上进行了增强而不改变其原有特性&#xff0c;旨在简化开发并提高开发效率。MyBatis-Plus在MyBatis的基…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第49课-机器人自动跳舞

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第49课-机器人自动跳舞 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

Qt 实战(6)事件 | 6.2、事件过滤器

文章目录 一、事件过滤器1、什么是事件过滤器&#xff1f;2、如何实现事件过滤器&#xff1f;3、应用示例4、总结 前言&#xff1a; 在Qt的事件处理机制中&#xff0c;事件过滤器&#xff08;Event Filter&#xff09;是一种非常强大且灵活的工具&#xff0c;它允许开发者在一个…

if __name__ == “__main__“

在Python中&#xff0c;if __name__ "__main__": 这行代码非常常见&#xff0c;它用于判断当前运行的脚本是否是主程序。这里的 __name__ 是一个特殊变量&#xff0c;当Python文件被直接运行时&#xff0c;__name__ 被自动设置为字符串 "__main__"。但是&…