目录
一、背景分析
二、学习资源
三、具体使用
四、一些小技巧
方式一
方式二
一、背景分析
SpringBoot项目在打包之后,其配置文件就在jar包内,如果没有<配置文件优先级>这个机制,那么项目打成jar包之后,如果启动项目就只能使用jar包内的配置信息。那么问题来了,如果在项目打成jar包之后,我又想修改一些配置信息怎么办?难道还要重新打开项目源代码,把配置文件修改了之后再重新打包吗?这就太麻烦了,所以就有了此篇文章要介绍的<SpringBoot的配置(文件)加载优先级的技术>。
二、学习资源
个人觉得通过视频+官方文档结合学习,然后再自己动手实操,学习效果最佳。如果能及时把学的知识点运用在实际项目开发中,那就更好了。
- 学习视频地址:82、高级特性-配置加载优先级_哔哩哔哩_bilibili
- SpringBoot官方学习资料地址: Core Features (spring.io)
说明:这里看的官方文档是SpringBoot2.7.15版本的,不同版本的SpringBoot文档可能会有差异性,想要查询SpringBoot的所有历史官方文档,可以看这篇博文:SpringBoot历史官方文档-CSDN博客
三、具体使用
直接通过官方文档来学习,如下图:
通常在开发过程中,我们经常使用的是 配置文件和命令行的方式进行配置信息的设置和修改,如下图:
针对外部配置文件(即:application.yml或application.properteis)的方式,这个配置文件可以有如下位置方式(即SpringBoot项目可以查找配置文件的位置有哪些),其加载的优先顺序如下:
关于上图,更直观的解释如下图:
四、一些小技巧
关于上面的知识点一中提到,可以在使用java -jar xxx.jar 命令时,在后面增加临时属性,然后覆盖配置文件中的属性。但是现在的问题是,我需要提前对将来要在 java -jar xxx.jar 命令后面增加的临时属性进行测试,看看是否会生效,那么在本地idea环境中该如何进行测试呢?
方式一
在IDEA中的 Program argumets 里面添加临时属性,如下图
方式二
方式二及一些小技巧如下图:
五、总结
关于配置文件的加载顺序问题,总结就是:指定环境优先,外部优先,后面的可以覆盖签名的同名配置项。