启动慢排查指南:Bean 初始化耗时 2 分钟?Profile 分析+懒加载优化,提速 50%!
公司一个微服务,启动一次要两分多钟。每次发布都是煎熬——CI/CD 等两分钟,滚动更新每起一个新 Pod 又是两分钟,发个版十分钟起步。他们以为是 Spring Boot 就这样,直到有一天我在控制台加了一行 -Dspring-startup-analyzer,发现有个 Bean 的 @PostConstruct 里竟然在同步加载全量字典数据,光它一个就花了 40 秒。 Spring Boot 启动慢这件事,大多数时候不是你 Bean 太多,而是有几个 Bean 初始化的时候干了不该干的活。今天聊聊怎么把这几颗老鼠屎找出来,以及怎么做懒加载优化。 先定位:到底是哪些 Bean 在拖后腿 Spring Boot 启动慢,第一件事不是优化,是找到瓶颈。没有数据支撑的优化就是瞎改。 最简单的方式:Spring Boot Actuator 的 Startup 端点 Spring Boot 2.4+ 内置了一个 ApplicationStartup 机制。在配置文件里开一下就能用: # application.yml spring: application: startup: step-rec....