# spring-startup-cost **Repository Path**: The-Keyboard/spring-startup-cost ## Basic Information - **Project Name**: spring-startup-cost - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-02 - **Last Updated**: 2025-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一,spring 启动耗时分析 项目越来越大,越来越臃肿,启动越来越慢,如何优化启动时间? 如何找到耗时的方法?只有找到耗时的方法才能进行后续的优化 # 二,传统方案 使用BeanPostProcessor记录Instantiation,跟Initialization 耗时. 详情见 com/example/start/v1/Application.java ## 缺点 只能记录特定几个生命周期的耗时,比如bean的构造,afterPropertiesSet @PostConstruct . 对于比较容易耗时多的onApplicationEvent,无法记录 # 三,基于aop的耗时记录 见com/example/start/ApplicationV2.java # 优点 支持全部生命周期, aop的环绕拦截 编程简单,符合人的思维 # 为什么不使用spring aop而使用eazy aop spring aop切面会失效,spring无法切入非spring bean的类. eazy aop可以成功切入