springboot2.0源码 V1
目录
启动函数
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