title: SpringBoot2.StartProcess
StartProcess提纲
SpringBoot如果要说是SpringFrameWork的封装那么也不全是,个人认为从思想上来说是两个东西。
SpringBoot主要具备如下特性
1.自动装配
2.内置tomcat等web容器
3.与devops天然集成,这也可以认为是微服务的特点。
启动流程过程
首先创建SpringApplication对象期间初始化程序运行环境拉取listener以及获取ApplicationContextInitializer
接着会运行run方法具体会执行如下步骤
1.获取并启动监听器
2.构造容器环境,加载application配置文件或者自定义配置文件位置
3.创建容器
4.准备预处理容器
5.刷新容器
6.刷新容器后调用扩展接口
经过上面几步整个程序就运行起来了
下面咱们看下代码
具体源码分析
下面是一段程序的启动入口代码,这块代码其实可以自己自定义new一个SpringApplication对象启动
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
咱们跟进run方法中去,会看到下面这一段代码,。这里如上面开头所说有两个步骤
1.初始化SpringApplication对象
2.执行run方法
public static ConfigurableApplicationContext run(Class<?>[] primarySources,
String[] args) {
return new SpringApplication(primarySources).run(args);
}
先看初始化SpringApplication,咱们点进去看一下构造函数干了些啥
public SpringApplication(ResourceLoader resourceLoader, Class<?