Spring Boot IoC 容器初始化过程

时间:2023-03-08 20:11:30

1. 加载 ApplicationContextInializer & ApplicationListener

2. 初始化环境 ConfigurableEnvironment & 加载配置文件

3. 构建应用上下文 ApplicationContext

4. 注册源文件 source

5. 通过 ApplicationListener 注册 BeanFactoryPostProcessor

6. 初始化 BeanFactoryPostProcessor 到 IoC 容器

7. 通过 BeanFactoryPostProcessor: ConfigurationClassParser 扫描注册所有组件(包括: @Bean @Configuration, @Imports) 到  IoC 容器

8. 注册拦截 bean 创建的 bean processors

9. createEmbededServletContainer: 通过内置的 Servlet 容器工厂创建内置 Servlet 容器

10. 初始化所有未初始化的单例 BeanDefinitions 到 Ioc 容器

11. 启动内置 Servlet 容器

12. 完成