当前位置: 首页 > 工具软件 > Spring Native > 使用案例 >

Spring Boot 学习总结(31)—— Spring Native 主要知识点总结

吴炎彬
2023-12-01

一、概述

Spring Native 为使用 GraalVM 原生镜像编译器编译 Spring 应用为本地可执行文件提供支持。与 Java 虚拟机相比,原生镜像可以在许多场景下降低工作负载,包括微服务,函数式服务,非常适合容器和 Kubernetes。使用原生镜像有明显优势,如快速启动,提高峰值性能以及降低内存消耗。GraalVM 项目也有一些缺点和权衡,希望随着时间的推移有所改进。构建本地映像是一个繁重的过程,比常规应用程序要慢,预热后的运行时优化也更少。最后,比起 JVM 很多场景下还不成熟。常规 JVM 和此本机映像平台之间的主要区别:

  • 在构建时会从主入口点对应用程序进行静态分析。
  • 在构建时将未使用的零件删除。
  • 反射,资源和动态代理需要配置。
  • 类路径在构建时是固定的。
  • 没有类延迟加载:可执行文件中附带的所有内容都将在启动时加载到内存中。
  • 一些代码将在构建时运行。
  • 一些 Java 切面类的特性未得到完全支持。

此项目的目标是孵化对 Spring Native(Spring JVM 的替代方案)的支持,并提供旨在打包到轻量级容器中的本地部署选项, 目标是在此新平台上直接支持 Spring 应用而不需要修改代码。

1.1 组成模块

Spring Native 由以下模块组成:

  • spring-native:运行 Spring Native 所需的运行时依赖,还提供了 Native hints API。
  • spring-native-configuration:Spring AOT 插件使用的 Spring 类的配置提示,包括各种 Spring
 类似资料: