GraalVM Native
MyBatis-Plus 新增支持 GraalVM Native Image,可在符合条件的项目中构建原生可执行文件,从而获得更快的启动速度和更低的运行时内存占用。
功能概述
- 原生镜像构建:支持配合
GraalVM Native Image将应用编译为平台相关的原生可执行文件。 - Spring AOT 适配:在
Spring Boot 3 AOT场景下,配合框架完成运行期所需的反射、资源等提示信息注册。 - 部署形态简化:构建产物可直接运行,不再依赖完整
JVM启动流程,适合云原生、Serverless、容器镜像等启动敏感场景。
使用前提
- 使用支持
Native Image的JDK,例如 GraalVM JDK。 - 项目已接入
Spring Boot 3.x或其他支持GraalVM Native Image的构建体系。 - MyBatis-Plus 版本需包含
GraalVM Native Image支持。
构建示例
示例工程 mybatis-plus-native-image-demo
Maven 项目可使用 Spring Boot Native Build Tools 构建:
mvn -Pnative native:compile构建成功后,可直接运行生成的原生可执行文件:
./target/demo如果使用容器镜像构建,可以通过 Spring Boot 插件生成 Native Image 镜像:
mvn -Pnative spring-boot:build-image注意事项
- 原生镜像构建时间通常明显长于普通 JVM Jar 构建,建议在 CI 环境中单独配置构建任务。
- 动态 SQL、XML Mapper、自定义 TypeHandler、自定义拦截器等扩展能力可以继续使用,但需要确认相关类和资源能被 AOT 分析或显式注册。
- 原生可执行文件与目标操作系统和 CPU 架构相关,需要在匹配的构建环境中产出对应平台的可执行文件。
- 开发阶段仍建议优先使用普通 JVM 模式调试,发布阶段再执行 Native Image 构建验证。