目錄
啓動函數
SpringApplication.run(Application.class,args);
等於
源碼解析
解析:new SpringApplication(Application.class).run(args);
第一步解析:SpringApplication構造函數;
第二步解析:run方法;
第一步SpringApplication構造函數源碼:
從springboot源碼的spring.factories文件中獲取ApplicationContextInitializer和ApplicationListener
注:在Spring Boot中有一種非常解耦的擴展機制:Spring Factories。
它在META-INF/spring.factories文件中配置接口的實現類名稱,然後在程序中讀取這些配置文件並實例化。
第二步run方法源碼:
解析@EnableAutoConfiguration
1. @SpringBootApplication包含@EnableAutoConfiguration
2. 點擊進入@EnableAutoConfiguration類
3. 點擊進入:AutoConfigurationImportSelector.class
4. springboot整合的第三方工具框架存加載位置(也是採用擴展機制:Spring Factories方式加載):
解析springboot如何加載tomcat
- 進入 ServletWebServerFactoryAutoConfiguration類org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration
2. tomcat配置文件-配置類
3. tomcat啓動類方法
解析springboot如何加載springmvc
- 進入WebMvcAutoConfiguration類
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration
加載DispatcherServlet