spring boot启动优化需三步:先设debug=true查看真实生效的自动配置;再用@springbootapplication(exclude=...)精准排除无用配置类;最后验证日志和功能是否正常。

SpringBoot启动时自动配置加载了大量用不到的组件,导致启动时间拉长、内存占用升高、控制台日志刷屏干扰排查——这不是业务代码慢,而是框架在替你“勤快地做无用功”。
第一步:确认哪些自动配置真正在生效
在 application.properties 中添加一行:
debug=true
重启应用,控制台会输出完整的 【AUTO-CONFIGURATION REPORT】。重点看 Positive matches 区域,里面列出的所有类都是当前被 Spring Boot 实际装配的自动配置类。别信 pom.xml 里有没有引入某个 starter,只信这份报告——它反映的是真实加载行为。
注意:这个报告只在启动时打印一次,关掉再开就没了,务必截图或复制保存。
第二步:精准排除确定不用的自动配置类
打开主启动类(含 @SpringBootApplication 的那个),改写成带 exclude 的形式:
方法一:直接在注解里排除常见冗余项
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class,
HibernateJpaAutoConfiguration.class,
RedisAutoConfiguration.class,
MailSenderAutoConfiguration.class,
ThymeleafAutoConfiguration.class
})
方法二:如果排除项多且需复用,单独定义常量类更清晰
public class AutoConfigExcludes {
public static final Class>[] COMMON = {
DataSourceAutoConfiguration.class,
JdbcRepositoriesAutoConfiguration.class,
FlywayAutoConfiguration.class
};
}
然后主类写成:
@SpringBootApplication(exclude = AutoConfigExcludes.COMMON)
【必须导入对应class】 比如排除 DataSourceAutoConfiguration,就得加上 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;,少一个 import 编译直接报错。
第三步:验证排除是否生效
第一步:删掉 debug=true,避免日志污染;
第二步:启动应用,观察控制台是否还出现类似 Started DataSource、Initialized RedisConnectionFactory 这类日志;
第三步:检查应用功能是否正常——比如你排除了邮件配置,但系统又真要发邮件,那就得立刻加回来。
如果某功能突然不可用,回看 exclude 列表,把对应配置类从排除清单中移除即可,无需改其他代码。











