「Spring Boot 系列」06. Spring Boot 配置文件加载顺序

内部配置文件加载顺序

Spring Boot程序启动时,会从以下位置加载配置文件:

  1. 项目根目录:当前项目下的/config目录下
  2. 项目根目录:当前项目的根目录下
  3. classpath:classpath的/config目录下
  4. classpath:classpath的根目录下

加载顺序为上面的排列顺序,高优先级配置文件的属性会生效

注意:优先级高的配置文件只覆盖优先级低的配置文件中的重复项。低级配置文件的独有项仍然有效。

目录结构如下:
在这里插入图片描述

测试:

测试方法: 通过配置Tomcat的端口号来检测他们的优先级顺序
测试步骤:

  1. classpath的根目录下,即resources下的application.yml
    在该位置的配置文件中设置Tomcat的端口号为8081,启动该项目
    在这里插入图片描述
  2. classpath的/config目录下,即resources中config目录下的application.yml
    在该位置的配置文件中设置Tomcat的端口号为8082,重新启动该项目
    在这里插入图片描述
  3. 当前项目的根目录
    在该位置的配置文件中设置Tomcat的端口号为8083,重新启动该项目
    在这里插入图片描述
  4. 当前项目下的/config目录下
    在该位置的配置文件中设置Tomcat的端口号为8084,重新启动该项目
    在这里插入图片描述
    测试结果: 这四个位置的配置文件的优先级从低到高与测试的顺序一致。

外部配置文件加载顺序

通过指定配置spring.config.location来改变默认配置,一般在项目已经打包后,我们可以通过指令来加载外部文件的配置:
java -jar xxx.jar --spring.config.location=e://Java/application.yml
在这里插入图片描述
在这里插入图片描述
改变环境变量时,可以通过修改外部配置文件来实现,不需重新打包项目。

当然如果你觉得在命令行指定外部配置文件的位置太麻烦,那么我再告诉你种方法,那就是在你想启动的项目jar包所在的文件夹下新建一个application.yml配置文件,或者在该文件夹下新建一个config的文件夹并在config文件夹下新建一个application.yml配置文件。

在这里插入图片描述

这时候该项目就会自动读取该配置文件,如果两个同时存在,他们也是有优先级的,config文件下的yml文件是优先于与jar包同级的yml文件。

更详细的介绍可以查看Spring Boot 中文文档
在这里插入图片描述

最后
祝大家学的愉快,学的神速。
有帮助的话,各位小伙伴可以点个赞收藏支持下啦!❤️
也欢迎关煮博主,一个正在努力变强的程序员~

猜你喜欢

转载自blog.csdn.net/weixin_52986315/article/details/125689014