SpringBoot项目中配置文件的启动顺序

SpringBoot项目中配置文件的启动顺序

1.springboot内部配置

1.当properties文件与yml文件同时存在

在这里插入图片描述

properties文件中的内容

server.port=8081

yml文件中的内容

server:
  port: 8080

当启动项目的时候,控制台输出如下

2019-12-03 16:49:08.451  INFO 9560 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path ''

可见 当properties文件和yml文件同是处于classpath文件路径下,springboot优先加载properties

2.当配置文件存在于classpath和classpath/config文件夹时

在这里插入图片描述

config文件夹中的内容

server:
  port: 8082

classpath路径下的内容

server:
  port: 8080

当启动项目的时候,控制台输出如下

2019-12-03 17:52:03.588  INFO 7220 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8082 (http) with context path ''

可见 当yml文件处于classpath和classpath/config下,config文件夹下的配置文件优先加载

3.当配置文件存在于classpath和工程文件夹根目录时

在这里插入图片描述

classpath文件夹下配置内容

server:
  port: 8080

工程文件夹根目录中的内容

server:
  port: 8083

当启动项目的时候,控制台输出如下

2019-12-03 17:58:55.131  INFO 13296 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8083 (http) with context path ''

可见 当yml文件处于classpath和工程根目录时,工程根目录下的配置文件优先加载

4.当配置文件存在于classpath和工程根目录下/config文件中

在这里插入图片描述

classpath文件夹下配置内容

server:
  port: 8080

工程文件夹根目录/config中的内容

server:
  port: 8084

当启动项目的时候,控制台输出如下

2019-12-03 18:03:09.543  INFO 12216 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8084 (http) with context path ''

可见 当yml文件处于classpath和工程根目录时,工程根目录/config配置文件优先加载

5.当配置文件存在于classpath和classpath/config文件夹时

在这里插入图片描述

工程文件夹根目录/config中的内容

server:
  port: 8084

工程文件夹根目录中的内容

server:
  port: 8083

启动项目输出如下

2019-12-03 18:06:03.368  INFO 3512 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8084 (http) with context path ''

可见 当yml文件处于工程根目录和根目录/config文件中时,工程根目录/config配置文件优先加载

6.四个位置的文件加载的优先级

项目根目录/config > **项目根目录 ** > classpath/config > classpath

在这里插入图片描述

2.Springboot外部配置

1.Springboot打包后的jar包同yml文件处于同一文件夹下

在这里插入图片描述

jar包中配置文件内容为

server:
  port: 8080

外部yml配置文件内容为

server:
  port: 8085

启动后 控制台输出情况如下

2019-12-03 21:13:13.953  INFO 13780 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8085 (http) with context path ''

故此种情况下 外部配置文件读取顺序要优先于内部配置文件

2.命令行启动jar包进行配置

jar包和配置文件处于同一文件夹下

在这里插入图片描述

java -jar springboot-0.0.1-SNAPSHOT.jar --server.port=8086

再窗口运行如上命令 启动程序控制台输出如下

2019-12-03 21:18:23.970  INFO 8888 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8086 (http) with context path ''

运行如上命令 启动程序控制台输出如下

2019-12-03 21:18:23.970  INFO 8888 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8086 (http) with context path ''

证明该命令下,命令行配置要优先于外部配置文件

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值