SpringBoot应用的启动方式很简单,就一行代码,如下图01:
其实这行代码背后主要执行两个方法,一个是构造方法,一个是run方法。
构造方法主要内容就是收集一些数据,和确认一些信息。如下图02:
真正的执行要从run方法开始,为此,SpringBoot特意定义了一个监听器,专门监听这个run方法的执行过程。
这个监听器的名字是,SpringApplicationRunListener,如下图03:
这个接口的方法其实就表示了SpringBoot应用的启动过程。
备注:这个监听器是SpringBoot自己使用的,我们虽然也可以使用,但有些麻烦。
第一步,启动
当进入run方法后,首先就是获取监听器,并触发starting方法。
应用正式开始启动,如下图04:
第二步,准备环境
最先要准备好的就是Environment,因为后续要使用它。
它里面的值也包含启动时的命令行参数,如下图05:
此时会触发监听器的environmentPrepared方法,如下图06:
第三步,创建容器
根据应用类型创建适合的Spring容器,如下图07: