SpringBoot 3.2 正式版发布,官方宣称「启动性能提升 40%」。本文用真实业务 JAR 验证,给出可抄作业的 3 行配置 + 1 个原生镜像方案,启动时间从 3.2 s → 1.9 s,内存下降 20%,零代码侵入

① 禁用 3 个高耗 Bean(application.yml)

spring:
  autoconfigure:
    exclude:
      - org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
      - org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration
      - org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration

原理:ErrorMvc、HttpEncoding、Validator 在启动期全量扫描类路径,排除后减少 200+ 类加载。

② AOT 生成启动索引(Maven 插件)

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <executable>true</executable>
    <aotMode>native</aotMode>
  </configuration>
</plugin>

打包命令:

mvn clean package -Pnative

效果:启动时直接加载预生成索引,不再反射扫描,CPU 下降 15%。

③ 原生镜像 GraalVM 终极提速

Docker 一行构建:

FROM ghcr.io/graalvm/graalvm-community:17
COPY target/demo /app
ENTRYPOINT ["/app"]

构建后 JAR → 原生可执行文件,冷启动 180 ms,内存 60 MB,适合函数计算/边缘节点。

数据对比(同一台 4C8G)

方案 冷启动 内存 包大小
默认 3.2.0 3.2 s 280 MB 18 MB
排除 Bean 2.4 s 230 MB 18 MB
AOT 索引 1.9 s 220 MB 19 MB
原生镜像 0.18 s 60 MB 42 MB

SpringBoot 3.2 启动性能对比:3 行配置即可从 3.2 s 降到 1.9 s,原生镜像方案再提速至毫秒级

小结

  • 普通业务想「立刻快」→ 复制本文 3 行配置即可
  • 云原生/Serverless → 直接上原生镜像,毫秒级冷启动

你在项目中还用过哪些 SpringBoot 提速黑魔法?留言一起攒性能清单!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐