对于初学springboot的人来说,多个配置文件会搞不懂他们的优先级和作用,今天和大家一起探讨一下,有不对的地方还请多多指教.
springboot启动会自动扫描配置文件,以下位置的application.properties或者application.yml文件会作为springboot的默认配置文件
-file:./config/
-file:./
-classpath:/config/
-classpath:/
优先级从高到低,高优先级的配置会覆盖低优先级的配置.
也就是说:-file:./config/ 目录下的配置文件优先级最高,-file:./ 第二高,以此类推.
但是并不是说有了高优先级的配置文件,就不加载低优先级的了,只要有配置文件,都会加载,只是配置文件中有相同的配置,会优先使用优先级高的配置.
也就是springboot会从这四个位置全部加载主配置文件,他们互补配置.
很多人不知道file,classpath指的什么位置,我最开始学的时候也不清楚,现在和大家分享一下:
file:根目录文件夹
classpath:类文件路径,也就是main/resources路径
具体请看下图.
还有一种可以通过配置spring.config.location来改变默认配置,这个已经在运维级别使用,再启动项目的时候来指定配置文件的新位置,指定的配置文件和默认加载的配置文件共同起作用形成互补配置.
操作步骤如下:
1,项目打包
2,打包成功会出现两个以项目名开头的文件, 右键其中一个文件-show in Explorer,进入文件所在目录,在地址栏中输入cmd,进入命令行
java -jar spring-boot-0.0.1-SNAPSHOT.jar --spring.config.location=G:/application.properties
其中G:/application.properties 没有对路径没有任何要求,只需要不是中文路径,是你的配置文件所在地址,即可.
启动,就使用了G:/application.properties中的配置
这个就是在运维时候使用,比如项目已经打包成功,但是某个配置需要修改,就不需要再修改打包运行,只需要运维再运行时候加个配置文件就可以了.所有的还是互补配置,特别好用.
好了,配置文件的优先级和使用方法就介绍到这里,如果对你有帮助,请点赞关注吧,我会时不时分享我的学习技巧和学习难点,大家一起进步.