上一篇我们讲解了profile的多环境支持,这次我们来说下配置文件的加载位置
配置文件加载位置
SpringBoot在启动时会扫描固定的位置中的application.properties文件或者application.yml文件作为默认配置文件
file:/config
file:./
classpath:/config/
classpath:/
并且是按照优先级从高到低的顺序,所有位置的文件都会加载,高优先级配置内容会覆盖低优先级配置内容(上面的顺序就是优先级顺序)
这里我们可以来尝试一下
在resources下建立一个config文件夹,里面放一个application.properties文件,端口号为8090,在resources下的application.properties文件的端口号为8081,执行一下
我们发现端口号为8090,即config中的端口号,即验证了后边两个位置的优先级,其余的大家自己试验一下,就不演示了
互补配置:SpringBoot启动时会按照优先级扫描四个文件位置,相同的配置高优先级的会覆盖低优先级的,不同的配置低优先级会补上
这里做个试验
在resources下的properties文件下加一个配置项目访问路径,然后测试一下
server.servlet.context-path=/hi
我们发现出现错误,加上配置的访问路径
由此低优先级的可以补上高优先级没有的配置
我们也可以通过spring.config.location来改变默认配置
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置
我们在resources下的properties文件中加入spring.config.location指令,将config下的properties文件复制到一个盘,然后把这个文件的端口号改为8091,指令就是文件所在地址
spring.config.location=C:/Users/hp/Desktop/application.properties
运行一下,发现端口号还是8090
我们把项目打包一下
然后在终端打开target,执行jar包,加上指令,运行
端口号变成了复制的文件修改之后的端口号
用网页进行测试
没有问题,端口号修改成功
这个功能主要用于运维,在项目完成后需要改动,我们可以利用这个功能进行小的修改