You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3中如何在常规JVM应用中利用Spring AOT?

在常规JVM应用中借助Spring AOT提升性能的方法

Spring AOT原本为GraalVM Native Image设计,但确实能在常规JVM环境中通过生成替代反射的静态代码,减少启动时的反射开销,提升应用启动速度。以下是具体的操作步骤:

1. 配置构建工具插件

无论是Maven还是Gradle,都需要确保使用Spring Boot 3.x版本的构建插件,并启用AOT相关功能:

Maven配置

在pom.xml中确保spring-boot-maven-plugin的配置包含AOT支持:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>3.0.0-RC2</version>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
                <goal>aot-generate</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Gradle配置

在build.gradle中启用AOT任务:

plugins {
    id 'org.springframework.boot' version '3.0.0-RC2'
    id 'java'
}

tasks.named('bootAotGenerate') {
    enabled = true
}

2. 生成AOT代码

执行对应的构建命令生成静态代码:

  • Maven:运行 ./mvnw spring-boot:aot-generate,生成的代码会存放在target/generated-sources/aot目录下
  • Gradle:运行 ./gradlew bootAotGenerate,生成的代码会存放在build/generated/aot目录下

这些代码包含了替代反射的静态工厂、初始化逻辑,能直接被JVM编译执行,避免启动时的反射解析开销。

3. 编译并运行应用

将生成的AOT代码纳入编译路径后,正常编译并启动应用即可:

  • Maven:./mvnw clean package spring-boot:run
  • Gradle:./gradlew clean bootRun

此时应用启动时会优先使用AOT生成的静态代码,减少反射调用,从而加快启动速度。

注意事项

  • 依赖兼容性:部分第三方库可能尚未适配Spring AOT,若遇到反射相关的报错,需要检查库的版本是否支持Spring Boot 3及AOT特性
  • 配置变更:AOT代码是基于当前应用的配置和上下文生成的,若修改了Bean定义、配置参数等,需要重新执行AOT生成任务,否则可能出现不兼容问题
  • 测试验证:建议在生成AOT代码前后对比启动时间,确认性能提升效果

内容的提问来源于stack exchange,提问作者Harold L. Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:50:19