________________初学springboot11

Springboot的运行流程

1、判断是否是web环境

2、加载左右Classpath下的META-INF/spring.factories  ApplicationContextInitializer 

3、加载所有classpath下的META-INF/spring.factories  ApplicationListener

4、推断main方法所在类

5、开始执行run方法

6、设置Java.awt.headless系统变量

7、加载所有classpath下面META-INF/spring.factories springApplicationRunListener

8、执行所有SpringApplicationRunListener的started方法

9、实例化SpringApplicationArguments对象

10、创建environment

扫描二维码关注公众号,回复: 2383046 查看本文章

11、配置environment,主要是把run方法的参数配置到environment

12、执行所有springApplicationRunlistener的environmentPrepared方法

13、如果不是web环境,但是死web的environment,则把这个web的environment转换成标准的environment

14、打印banner

15、初始化Applicationcontext,如果是web环境,则实例化AnnotationConfigEmbeddedWebApplicationContext对象,否则实例化annotation

16、如果beanNameGennerator不为空,就把beanNameGenerator对象注入到context里面去

17、执行所有SpringApplicationRunListener的contextPrepared方法

18、执行所有springApplicationRunListener的contextPrepared方法

19、依次往spring容器中注入:ApplicationArgument,banner

20、加载所有源到context里

21、执行所有SpringApplicationRunListener的contextPrepared方法

22、执行所有context的refresh方法,并调用context的registeris的registerShutdown

23、回调,获取容器中所有appliationRunner,ConnandRunner等接口,然后排序

24、执行所有springApplicationRunListene的finished方法

猜你喜欢

转载自www.cnblogs.com/qiqisx/p/9370013.html