SpringBoot的配置加载优先级

目录

一、背景分析

二、学习资源

三、具体使用

四、一些小技巧 

方式一

方式二


一、背景分析

        SpringBoot项目在打包之后,其配置文件就在jar包内,如果没有<配置文件优先级>这个机制,那么项目打成jar包之后,如果启动项目就只能使用jar包内的配置信息。那么问题来了,如果在项目打成jar包之后,我又想修改一些配置信息怎么办?难道还要重新打开项目源代码,把配置文件修改了之后再重新打包吗?这就太麻烦了,所以就有了此篇文章要介绍的

二、学习资源

        个人觉得通过视频+官方文档结合学习,然后再自己动手实操,学习效果最佳。如果能及时把学的知识点运用在实际项目开发中,那就更好了。

  • 学习视频地址:82、高级特性-配置加载优先级_哔哩哔哩_bilibili
  • SpringBoot官方学习资料地址: Core Features (spring.io)

 说明:这里看的官方文档是SpringBoot2.7.15版本的,不同版本的SpringBoot文档可能会有差异性,想要查询SpringBoot的所有历史官方文档,可以看这篇博文:SpringBoot历史官方文档-CSDN博客

三、具体使用

         直接通过官方文档来学习,如下图:

SpringBoot的配置加载优先级_第1张图片

        通常在开发过程中,我们经常使用的是 配置文件和命令行的方式进行配置信息的设置和修改,如下图: 

SpringBoot的配置加载优先级_第2张图片​ 

         针对外部配置文件(即:application.yml或application.properteis)的方式,这个配置文件可以有如下位置方式(即SpringBoot项目可以查找配置文件的位置有哪些),其加载的优先顺序如下:

SpringBoot的配置加载优先级_第3张图片

关于上图,更直观的解释如下图:

SpringBoot的配置加载优先级_第4张图片​ 

四、一些小技巧 

        关于上面的知识点一中提到,可以在使用java -jar xxx.jar 命令时,在后面增加临时属性,然后覆盖配置文件中的属性。但是现在的问题是,我需要提前对将来要在 java -jar xxx.jar 命令后面增加的临时属性进行测试,看看是否会生效,那么在本地idea环境中该如何进行测试呢?

方式一

        在IDEA中的 Program argumets 里面添加临时属性,如下图

SpringBoot的配置加载优先级_第5张图片

方式二

        方式二及一些小技巧如下图:

SpringBoot的配置加载优先级_第6张图片

五、总结

 关于配置文件的加载顺序问题,总结就是:指定环境优先,外部优先,后面的可以覆盖签名的同名配置项。

你可能感兴趣的:(spring,boot,后端,java,spring)