1、配置文件的加载位置

springboot会自动扫描application.properties或application.yml文件作为springboot的默认配置在文件

file:./config/(项目下的config,和src同级)    file:./       classpath:/config/         classpath:/        是优先级由高到低的顺序,所有未知的文件都会被加载,高优先级的配置内容会覆盖低优先级的内容

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

java 命令wsdl Java 命令行启动springboot配置文件_高优先级

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

java 命令wsdl Java 命令行启动springboot配置文件_java 命令wsdl_02

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

java 命令wsdl Java 命令行启动springboot配置文件_配置文件_03

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

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

java 命令wsdl Java 命令行启动springboot配置文件_优先级_04

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

java 命令wsdl Java 命令行启动springboot配置文件_配置文件_05

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

打包:

java 命令wsdl Java 命令行启动springboot配置文件_java 命令wsdl_06

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

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

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

java 命令wsdl Java 命令行启动springboot配置文件_java 命令加载配置文件_07

测试:

java 命令wsdl Java 命令行启动springboot配置文件_java 命令wsdl_08

java 命令wsdl Java 命令行启动springboot配置文件_配置文件_09

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

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

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

测试:

java 命令wsdl Java 命令行启动springboot配置文件_配置文件_10

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

java 命令wsdl Java 命令行启动springboot配置文件_优先级_11

测试:

java 命令wsdl Java 命令行启动springboot配置文件_高优先级_12

多个参数用空格分隔

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

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

java 命令wsdl Java 命令行启动springboot配置文件_高优先级_13

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

java 命令wsdl Java 命令行启动springboot配置文件_优先级_14

测试:

java 命令wsdl Java 命令行启动springboot配置文件_java 命令wsdl_15