Spring Native项目支持使用GraalVM将Spring应用程序打包为原生镜像。
与JVM可执行文件相比,原生镜像具有更快的启动时间( <100ms )和更低的内存消耗。但是,构建原生镜像比基于JVM的映像需要更多的时间。
该项目仍处于测试阶段,但已经支持大多数Spring组合模块,包括Spring Framework,Spring Boot, Spring Security, 和 Spring Cloud。
它的特性使它非常适合使用Spring Cloud功能构建无服务器 serverless 应用程序,并将其部署到Azure Functions、AWS Lambda或Knative等平台。
本文将指导您构建一个Spring Boot应用程序,该应用程序使用Spring native编译为本机可执行文件。您可以在GitHub上找到源代码: https://github.com/ThomasVitale/spring-tutorials/tree/master/spring-native-graalvm
使用Spring Native引导应用程序
当从spring initializer引导项目时( https://start.spring.io/ ),可以将Spring Native添加到应用程序中。
生成的项目将包含对SpringNative项目和Spring AOT插件的依赖,Spring AOT插件用于将应用程序源代码编译为本机可执行文件,同时提高兼容性和占用空间。
build.gradle<