Spring boot啓動運行流程

Spring boot啓動流程:

1:判斷是否是web環境
2:加載所有classpath下面的META-INF/spring.factories ApplicationContextInitializer
3:加載所有classpath下面的META-INF/spring.factories ApplicationListener
4:推斷main方法所在的類
5:開始執行run方法
6:設置java.awt.headless系統變量
7:加載所有classpath下面的META-INF/spring.factories SpringApplicationRunListener
8:執行所有SpringApplicationRunListener的started方法
9:實例化ApplicationArguments對象
10:創建environment
11:配置environment,主要是把run方法的參數配置到environment
12:執行所有SpringApplicationRunListener的environmentPrepared方法
13:如果不是web環境,但是是web的environment,則把這個web的environment轉換成標準的environment
14:打印Banner
15:初始化applicationContext, 如果是web環境,則實例化AnnotationConfigEmbeddedWebApplicationContext對象,否則實例化AnnotationConfigApplicationContext對象
16:如果beanNameGenerator不爲空,就把beanNameGenerator對象注入到context裏面去
17:回調所有的ApplicationContextInitializer方法
18:執行所有SpringApplicationRunListener的contextPrepared方法
19:依次往spring容器中注入:ApplicationArguments,Banner
20:加載所有的源到context裏面去
21:執行所有SpringApplicationRunListener的contextLoaded方法
22:執行context的refresh方法,並且調用context的registerShutdownHook方法(這一步執行完成之後,spring容器就完全初始化好了)
23:回調,獲取容器中所有的ApplicationRunner、CommandLineRunner接口,然後排序,依次調用
24:執行所有SpringApplicationRunListener的finished方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章