springboot启动简单流程


当我们运行SpringApplication的main方法时,调用静态方法run()首先是实例化,SpringApplication初始化的时候主要做主要做三件事:

根据classpath下是否存在(ConfigurableWebApplicationContext)判断是否要启动一个web applicationContext。
SpringFactoriesInstances加载classpath下所有可用的ApplicationContextInitializer
SpringFactoriesInstances加载classpath下所有可用的ApplicationListener
SpringApplicatio实例化完成并且完成配置后调用run()方法,首先遍历初始化过程中加载的SpringApplicationRunListeners,然后调用starting(),开始监听springApplication的启动。

加载SpringBoot配置环境(ConfigurableEnvironment),如果是通过web容器发布,会加载StandardEnvironment。将配置环境(Environment)加入到监听器对象中(SpringApplicationRunListeners)。

banner属性的设置

ConfigurableApplicationContext(应用配置上下文)创建,根据webEnvironment是否是web环境创建默认的contextClass
,AnnotationConfigEmbeddedWebApplicationContext(通过扫描所有注解类来加载bean)和ConfigurableWebApplicationContext),最后通过BeanUtils实例化上下文对象,并返回。

prepareContext()方法将listeners、environment、applicationArguments、banner等重要组件与上下文对象关联

refreshContext(context),bean的实例化完成IoC容器可用的最后一道工序

最后springboot做一些收尾工作。自此springboot的简单流程到此结束

https://blog.csdn.net/zmh458/article/details/90245256

posted @ 2021-03-19 15:48  明月出青山root  阅读(72)  评论(0编辑  收藏  举报