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. 完成