Spring Boot的启动过程你真的了解吗?

Spring Boot的run方法的启动过程你真的知道吗

Spring Boot众所周知他不需要配置tomcat等web启动器就可以直接启动,那么是为什么呢?

那我们今天来分析一下SpringBoot启动的过程:

1.当我们使用SpringApplication的静态run方法时候,这个时候实例化了一个SpringApplication对象,调用的是有参构造方法。

   在实例初始化之前,会先判断有没有Servlet,或者ConfigurableWebApplicationContext如果有的话得创建一个Web使用的SpringApplication。

    在应用的classpath中查找并加载所有可用的应用语境初始化。

    再查找所有的应用监听器并初始化。

2.实例初始化完毕之后,开始执行run方法,通过spring的工厂加载器查找并加载run方法监听器,调用starting()方法。

3.准备并配置SpringBoot的环境。

4.遍历执行所有的enviromentPrepared()方法,比如创建ApplicationContext。

5.判断SpringApplication的bannerMode,是CONSOLE则输出banner到System.out,是OFF则不打印,是LOG则输出到日志文件中。

6.判断是否设置applicationContextClass属性,如果有,则实例化该class。

7.将准备好的环境配置给ApplicationContext。

8.将beanNameGenerator,resourceLoader配置给当前的ApplicationContext。

9.创建好ApplicationContext之后,找到应用上下文初始化,遍历并加载。

10.遍历执行SpringApplicationRunListener的contextPrepared()方法。

11.通过@EnableAutoConfiguration这个注解获取所有配置,Ioc容器配置到当前已准备完毕的ApplicationContext。

12.遍历执行所有的上下文加载方法。

13.调用ApplicationContext的refresh()方法,完成Ioc容器可用的最后工序。

14.查找当前ApplicationContext中是否注册ApplicationRunner或者CommandLineRunner。

15.执行SpringApplicationRunListener的finished()方法!

(本文参考自高可用可伸缩微服务架构)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值