Spring Native发布:使用GraalVM将Spring应用编译为本机镜像


自Spring成立以来,除了Spring支持的常规Java虚拟机之外,现在提供新的方式:使用GraalVM将Spring应用编译为本机镜像,提供了一种部署Spring应用程序的新方法。支持Java和Kotlin。
这样,Spring应用可以部署为独立的可执行文件(无需安装JVM),并提供有趣的特性,包括几乎即时启动(通常<100ms),即时峰值性能和较低的内存消耗,但所需的构建时间和运行时优化次数少于JVM。
使用简单mvn spring-boot:build-image或gradle bootBuildImage命令,您可以生成一个优化的容器映像,该映像将包含一个最小的OS层和一个小的本机可执行文件,该映像仅随附JDK,Spring以及您在应用程序中使用的依赖项中的必需位。
 
网友经验:
随着Spring Native beta于上周五发布,我更新了我的Azure Functions +响应式Spring +本机示例应用程序:https://github.com/jdubois/azure-native-spring-function
迁移到Spring Native beta提供了许多优点:

  • 我的构建更简单,“本地构建”本身不到5分钟(压缩需要更多时间)。说到压缩,我使用的是https:// upx.github.io,所以我的最终Image大小仍然很小,为15.1Mb。这比我以前的本机版本(16.8Mb)还小!极好的。
  • 我可以在Mac上非常轻松地在本地运行它,因此开发人员的经验现在还不错
  • 它支持比以前更多的Spring功能(Jackson最明显的)

http:// shell.azure.com(这是非常小的机器,甚至可能比Azure Functions的机器还小的机器)上运行它,启动时间是56毫秒!
总体而言,这是一种绝佳的体验:
  • -易于设置和使用
  • -性能出色
  • -CI / CD速度较慢,但​​是没关系

对于使用Spring的人来说,这绝对是一个改变游戏规则的人!
值得一提的是,它仅支持最新的Spring Boot版本(2.4.3)以及Java 8和11。