springboot2.0源码 V1

目录

 

启动函数

源码解析

第一步SpringApplication构造函数源码:

第二步run方法源码:

解析@EnableAutoConfiguration

springboot如何加载tomcat

springboot如何加载加载springmvc


启动函数

SpringApplication.run(Application.class,args);

springboot2.0源码 V1

等于

springboot2.0源码 V1

springboot2.0源码 V1

源码解析

解析:new SpringApplication(Application.class).run(args);

第一步解析:SpringApplication构造函数;

第二步解析:run方法;

springboot2.0源码 V1

第一步SpringApplication构造函数源码

springboot2.0源码 V1

从springboot源码的spring.factories文件中获取ApplicationContextInitializerApplicationListener

springboot2.0源码 V1

springboot2.0源码 V1

注:在Spring Boot中有一种非常解耦的扩展机制:Spring Factories。

       它在META-INF/spring.factories文件中配置接口的实现类名称,然后在程序中读取这些配置文件并实例化。

第二步run方法源码:

springboot2.0源码 V1

解析@EnableAutoConfiguration

1. @SpringBootApplication包含@EnableAutoConfiguration

2. 点击进入@EnableAutoConfiguration类

springboot2.0源码 V1

3. 点击进入:AutoConfigurationImportSelector.class

springboot2.0源码 V1

springboot2.0源码 V1

4. springboot整合的第三方工具框架存加载位置(也是采用扩展机制:Spring Factories方式加载):

springboot2.0源码 V1

解析springboot如何加载tomcat

  1. 进入 ServletWebServerFactoryAutoConfiguration类org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration

springboot2.0源码 V1

2. tomcat配置文件-配置类

springboot2.0源码 V1

3. tomcat启动类方法

springboot2.0源码 V1

springboot2.0源码 V1

解析springboot如何加载springmvc

 

  1. 进入WebMvcAutoConfiguration类
    org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration

springboot2.0源码 V1

springboot2.0源码 V1

加载DispatcherServlet

springboot2.0源码 V1