前言
spring boot的入口想必大家都知道,初始化spring boot项目之后有个启动类,启动类里的main方法就是它入口了,运行这个main方法就可以把项目跑起来了。那么运行main方法之后,是怎么把appliaction.yml配置文件加载进去的,大家知道吗?今天我们就一起来探秘吧!
环境准备
spring boot 2.6.2
运行main方法,开始跟踪源码,找到关键方法
跟到这里之后我们可以先停下,看下最后一张图的注释,"Run the Spring application, creating and refreshing a new ApplicationContext.",翻译后即为:运行一个spring应用,生成并刷新一个新的ApplicationContext。那什么是ApplicationContext呢,鼠标移上去之后,会有说明,"Gentral interface to provide configuration for an application", 抓住关键字"configuration",那不就是配置信息吗,说到配置信息,那可不就是我们的appliaction.yml,看来我们已经找到关键的方法了,在try模块里有一个方法prepareEnvironment,大胆猜下,应该就是它了。
准备运行环境,prepareEnvironment方法跟踪源码
经过艰难险阻,我们终于就跟到地方了,在这个方法里我们拿到了application.yml中我们配置的server.port和spring.application.name两个参数。
加载application.yml配置完成
最终当listeners.environmentPrepared方法执行完,在environment这个参数里就已经封装了我们的配置信息了。
需要源码的可以关注公众号【温故知新之java】,更多干活与你分享。