SpringBoot的启动流程

        对于springboot技术来说,它用于加速spring程序的开发,核心本质还是spring程序的运行,所以于其说是springboot程序的启动流程,不如说是springboot对spring程序的启动流程做了哪些更改。

        其实不管是springboot程序还是spring程序,启动过程本质上还是在做容器的初始化,并将对应的bean加入到容器中。在spring中每个bean都需要自己配置,而在springboot 中包含了许多自动配置了许多bean对象,帮助开发者提前预设了许多bean的初始化过程,加上各种参数,使容器的初始化过程相对复杂,但是核心还是在做一件事,初始化容器,作为开发者只要搞清楚springboot提供了哪些参数配置环境,同时初始化过程中做了哪些事情就可以了。

springboot初始化参数,更具参数的额来源可以分为三步

        1、环境参数(Environment) 系统参数、监听器等

        2、系统参数  (spring.factory)

        3、参数 (main函数入口的参数args,核心配置文件中的参数 application.properties)                

SpringBoot的启动流程_第1张图片

 

核心就这两步,初始化参数,创建容器 

 

 

SpringBoot的启动流程_第2张图片 

SpringBoot的启动流程_第3张图片 

SpringBoot的启动流程_第4张图片 

SpringBoot的启动流程_第5张图片 

 

SpringBoot的启动流程_第6张图片 

SpringBoot的启动流程_第7张图片 

SpringBoot的启动流程_第8张图片 

SpringBoot的启动流程_第9张图片 

 

SpringBoot的启动流程_第10张图片 

SpringBoot的启动流程_第11张图片 

SpringBoot的启动流程_第12张图片 

SpringBoot的启动流程_第13张图片 

SpringBoot的启动流程_第14张图片 

SpringBoot的启动流程_第15张图片 

SpringBoot的启动流程_第16张图片 

SpringBoot的启动流程_第17张图片 

SpringBoot的启动流程_第18张图片 

SpringBoot的启动流程_第19张图片 

 总结

根据jar包中包含的类,确定所需要创建的容器类型,根据容器类型创建需要的环境并封装到environment对象中,其中包含系统参数和监听器。根据容器类型创建对应容器,将环境参数加载到容器中。容器加载完后刷新容器(加载spring的容器),后面还有两个扩展接口,可以实现在容器完成创建后执行。

你可能感兴趣的:(黑马,spring,java,spring)