最终是调用Spring的applicationContext.refresh(),又看到了熟悉的一幕
最后还留了一个入口,回调子容器的onRefresh()
Spring MVC的启动是创建父子两个WebApplicationContext
在刷新容器之后,所有的Bean都已经实例化完成
afterRefresh什么也没做
最后是回调Runner,回调所有的ApplicationRunner和CommandLineRunner
至此,Spring Boot启动完成
回顾一下,
1、推断Web应用类型
2、设置Bootstrapper、ApplicationContextInitializer、ApplicationListener
3、推断main方法
4、创建并配置环境Environment
5、打印Banner
6、创建并配置ApplicationContext
7、刷新ApplicationContext(此处交由Spring处理,调用Spring的refresh()方法)实例化所有的bean
8、回调所有的ApplicationRunner和CommandLineRunner