springboot 如何加载配置文件
通过SpringApplicationBuilder.run() -> SpringApplication.run() -> SpringApplication.createAndRefreshContext() -> SpringApplication.applyInitializers() -> PropertySourceBootstrapConfiguration.initialize()
ConfigFileApplicationListener(spring boot)管理配置文件,例如application.properties
ConfigFileApplicationListener(spring boot) : 管理我们的配置文件的,例如:application.properties
BootstrapApplicationListener(spring cloud) 负责加载bootstrap.properties 或者 bootstrap.yaml,初始化Bootstrap上下文(如图所示,启动后初始化顶级上下文,命名为bootstrap,有没有点java的BootstrapClassLoader的意思。也可以看出spring cloud是事件驱动的方式进行初始化)
Spring-boot启动时,会加载一些默认的监听器,其中有一个监听器是ConfigFileApplicationListener,这个监听器的作用就是读取工程中的配置信息。我们简单梳理下启动流程,首先启动类调用SpringApplication的run方法,并在run方法中调用了SpringApplication的构造方法,然后构造方法中初始化了Spring-boot启动需要的监听器;这个ConfigFileApplicationListener监听了SpringApplication启动事件