【玩转SpringBoot】SpringBoot应用的启动过程一览表

本文详细剖析了SpringBoot应用的启动流程,从构造方法到run方法,通过SpringApplicationRunListener监听器逐步揭示启动的七个步骤:启动、准备环境、创建容器、准备容器、加载资源、容器刷新和调用Runner接口。理解这一过程有助于深入掌握SpringBoot的内部工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


SpringBoot应用的启动方式很简单,就一行代码,如下图01:


其实这行代码背后主要执行两个方法,一个是构造方法,一个是run方法。

构造方法主要内容就是收集一些数据,和确认一些信息。如下图02:


真正的执行要从run方法开始,为此,SpringBoot特意定义了一个监听器,专门监听这个run方法的执行过程。

这个监听器的名字是,SpringApplicationRunListener,如下图03:


这个接口的方法其实就表示了SpringBoot应用的启动过程。

备注:这个监听器是SpringBoot自己使用的,我们虽然也可以使用,但有些麻烦。

第一步,启动

当进入run方法后,首先就是获取监听器,并触发starting方法。

应用正式开始启动,如下图04:


第二步,准备环境

最先要准备好的就是Environment,因为后续要使用它。

它里面的值也包含启动时的命令行参数,如下图05:


此时会触发监听器的environmentPrepared方法,如下图06:


第三步,创建容器

根据应用类型创建适合的Spring容器,如下图07:


第四步,准备容器

主要包括把Environment设置给容器,执行容器的自定义初始化器。

同时触发监听器的contextPrepared方法,如下图08:


第五步,加载资源

这里的资源主要包括应用的主类,还有用户显式设置的类名/包名/XML文件等。

加载这些资源的目的就是为了注册bean定义。

然后再触发监听器的contextLoaded方法,如下图09:


第六步,容器刷新

容器刷新主要包括调用“后处理器”进一步注册bean定义。

还包括对所有(非延迟加载)单例bean的实例化和初始化。如下图10:<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值