SpringBoot开发【配置】配置文件的加载位置

156 阅读2分钟

「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。

上一篇我们讲解了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包,加上指令,运行

测试.jpg

测试

端口号变成了复制的文件修改之后的端口号

用网页进行测试

测试

没有问题,端口号修改成功

这个功能主要用于运维,在项目完成后需要改动,我们可以利用这个功能进行小的修改