配置的加载
SpringBoot会从application.properties加载配置信息到Spring的Environment中。
同时也可以使用YAML('.yml')文件来替代'.properties'。
加载顺序
1. A /config subdirectory of the current directory.
位于与jar包同级目录下的config文件夹,也就是当前目录下的/config子文件夹下配置
2. The current directory
位于与jar包同级目录下(jar包当前目录)
3. A classpath /config package
classpath下的config目录,如idea环境下,resource文件夹下的config文件夹,编译之后就是classpath下的config文件夹下配置
4. The classpath root
classpath根目录,如idea环境下,resource文件夹下配置
加载顺序可以要查看ConfigFileApplicationListener#DEFAULT_SEARCH_LOCATIONS
关于application与bootstrap
application是SpringBoot的默认配置加载名称(可以通过spring.config.name修改),而bootstrap是SpringCloud提供的系统级别配置加载名称(可以通过spring.cloud.bootstrap.name修改)。
bootstrap配置是优先级是最高的,并且,bootstrap的配置不会被覆盖。
可参考源码BootstrapApplicationListener。BootstrapApplicationLis主要是创建了新环境,进行了bootstrap配置文件的加载
附1:加载配置ConfigFileApplicationListener源码导读
最终可以跟到实际的加载处理方法
Loader
然后,在load配置文件时,根据canLoadFileExtension来进行支持的配置文件匹配,然后加载。