文章预览
Boot+Cloud项目学习: macrozheng.com 背景 公司 SpringBoot 项目在日常开发过程中发现服务启动过程异常缓慢,常常需要6-7分钟才能暴露端口,严重降低开发效率。通过 SpringBoot 的 SpringApplicationRunListener 、 BeanPostProcessor 原理和源码调试等手段排查发现,在 Bean 扫描和 Bean 注入这个两个阶段有很大的性能瓶颈。 通过 JavaConfig 注册 Bean, 减少 SpringBoot 的扫描路径,同时基于 Springboot 自动配置原理对第三方依赖优化改造,将服务本地启动时间从7min 降至40s 左右的过程。本文会涉及以下知识点: 基于 SpringApplicationRunListener 原理观察 SpringBoot 启动 run 方法; 基于 BeanPostProcessor 原理监控 Bean 注入耗时; SpringBoot Cache 自动化配置原理; SpringBoot 自动化配置原理及 starter 改造; 耗时问题排查 SpringBoot 服务启动耗时排查,目前有2个思路: 排查 SpringBoot 服务的启动过程;
………………………………