# quickstart-spring **Repository Path**: calm_java/source-start-spring ## Basic Information - **Project Name**: quickstart-spring - **Description**: Spring Framework相关模块的源码测试+功能测试 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-11-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Spring各模块的启动流程 ### `spring-ioc` 启动流程 #### 单例bean的启动流程 > * 使用applicationContext > * applicationContext需要手动触发close ##### 主流程 1. 实例化BeanPostProcessorBean 2. 实例化bean对象 3. 调用BeanNameAware的setBeanName方法 4. 调用BeanFactoryAware的setBeanFactory方法, beanFactory是否为空:[false] 5. 调用ApplicationContextAware的setApplicationContext方法, applicationContext是否为空:[false] 6. 调用BeanPostProcessor的before方法 7. 调用InitializingBean的afterPropertiesSet方法 8. 调用init-method方法 9. 调用BeanPostProcessor的after方法 10. 调用DisposableBean的destroy方法 11. 调用destroy-method方法 ##### 时序图 见 docs/uml文件夹 #### 循环依赖