一、概述
所谓SpringBoot的启动原理,翻译成大白话就是"当我们在主启动类上运行run方法时,SpringBoot底层到底做了什么事情,能够帮助我们启动一个Spring的web应用",上边用大白话解释了一下什么是SpringBoot的启动原理,那么它的启动原理到底是什么呢?下面请看源码分析:
1、初始化SpringApplication;
2、运行run()方法;
3、读取环境变量、配置信息...
4、创建SpringApplication上下文:ServletWebServerApplicationContext;
5、预初始化上下文:将启动类作为配置类进行读取===>将配置类注册为BeanDefinition;
6、调用refreshContext加载IOC容器
invokeBeanFactoryPostProcessor:解析@Import,加载所有的自动配置类;
onRefresh:创建内置的Servlet容器;
7、调用各种各样的监听器对外扩展;
调用链路如下: