SpringBoot 启动缓慢?全方位高性能优化实战

文章封面
摘要: 分析 SpringBoot 启动慢核心原因,分享零风险、高收益的项目启动优化方案。

一、背景 / 问题

很多SpringBoot项目随着版本迭代,依赖不断增加,启动耗时越来越长。新项目启动2~3秒,后期慢慢涨到8秒甚至十几秒。本地开发频繁重启调试非常耗时;线上发布扩容场景,过长启动时间会拉长发布窗口,影响服务可用性。本文分析SpringBoot启动慢的各类原因,提供可直接落地的优化方案。

二、环境与前提

SpringBoot 2.x / 3.x版本都适用。需要熟悉SpringBoot自动装配、Bean生命周期、Hikari连接池基础配置。下面所有配置都可以在application.yml或者application.properties中配置。

三、实操步骤

1. 开启Bean懒加载

默认SpringBoot启动会实例化所有Bean,开启懒加载后,Bean在第一次被使用时才创建,大幅缩短冷启动时间。

spring: main: lazy-initialization: true

2. 排除无用自动配置类

自动装配会加载大量未使用组件的配置,在启动类注解中exclude排除不需要的自动配置。

@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, RedisAutoConfiguration.class }) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

3. 数据库连接池懒加载

默认启动时会预先创建数据库连接,改成初始连接数为0,延迟到第一次访问数据库才创建连接。

spring.datasource.hikari.initial-size=0 spring.datasource.hikari.minimum-idle=0

4. 清理冗余Maven依赖

使用命令mvn dependency:analyze分析未使用依赖,清理pom.xml中废弃starter和工具包,减少类加载开销。

四、坑点与注意事项

  • 开启全局懒加载后,Bean初始化异常会从启动阶段推迟到第一次调用接口时,上线前充分测试。
  • 排除自动配置类要核对项目依赖,不能把正在使用的配置排除。
  • 懒加载连接池会让第一次数据库请求变慢,属于正常现象。

五、总结

SpringBoot启动慢大多是默认加载策略带来的问题,通过懒加载、精简配置、清理依赖等方式,低成本即可显著降低项目启动耗时。

0 阅读 ← 返回技术栈
图片放大