springboot:配置文件的加载(配置文件的加载位置、命令行方式加载配置)

1、配置文件的加载位置

  • springboot会自动扫描application.properties或application.yml文件作为springboot的默认配置在文件
  • file:./config/(项目下的config,和src同级)    file:./       classpath:/config/         classpath:/        是优先级由高到低的顺序,所有未知的文件都会被加载,高优先级的配置内容会覆盖低优先级的内容

(1)同时新建两个配置文件,一个在config目录下,另一个在classpath:路径下

默认访问的是config目录下的配置文件:

 在与项目的src目录同一级新建一个config目录,在该目录下书写配置:再次访问上面的路径,已经失效,需要访问新的配置中的端口号

 也就是说高优先级的配置覆盖了低优先级的配置

(2)互补配置:高优先级有的话使用高优先级的配置,没有的话就用低优先级的配置

 访问controller的时候,用到的是高优先级的端口号和低优先级的访问路径

(3)项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置,指定的配置文件和默认加载的配置文件会一起起作用形成互补配置

打包:

 运行:使用的路径是在本地磁盘上的配置文件的路径

java -jar demo-0.0.1-SNAPSHOT.jar --spring.config.additional-location=D:/Desktop/application.properties

2、外部配置的加载顺序

高优先级的配置会覆盖低优先级的配置形成互补配置,下面的命令行方式的参数配置的优先级最高

(1)运行jar包

java -jar demo-0.0.1-SNAPSHOT.jar

默认运行的是项目参与打包的最高优先级的配置文件:

 测试:

 

 (2)命令行方式修改配置

在运行jar包的时候,在命令行后添加参数:

java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8888

测试:

(3)命令行方式修改多个配置

 测试:

 多个参数用空格分隔

(4)读取配置文件上的参数

需要在与jar包同一级的目录下新建一个配置文件:

 在配置文件中书写相关参数:此种方式适合要添加的参数较多的情况

 测试:

原文地址:https://www.cnblogs.com/zhai1997/p/13344079.html