继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

007SpringBoot之配置文件加载的优先级以及位置

ITMISS
关注TA
已关注
手记 365
粉丝 51
获赞 244

一、基础

1、定义

之前我们的application.yml/properties文件都放到了classpath:下,然后SpringBoot项目启动后会自动读取并加载,那么这个文件放在哪呢?只能放到classpath:下吗?不是。

2、位置以及优先级

SpringBoot启动后会扫描以下位置的application.yml/properties文件作为SpringBoot的默认配置。

  • 1、file:./config/

  • 2、file:./

  • 3、classpath:/config/

  • 4、classpath:/

优先级由高到低,高优先级的配置会覆盖低优先级的配置;

二、高级

1、互补配置

1.1、定义

我们上面介绍了配置文件是有优先级的,比如:我们在最高优先级(file:./config/)上配置了端口号,我们又在最低优先级(classpath:/)上配置了访问的域名,则SpringBoot启动的时候会加载全部配置文件不重复的配置项。也就是说会把端口和访问域名都加载进来,低优先级的配置并不会失效。

1.2、例子

1.2.1、高优先级的配置(yml)
server:  port: 8081
1.2.2、低优先级的配置(properties)
server.port=8080# 自定义访问域名server.address=www.chentongwei.com
1.2.3、启动后的效果

端口:8081

域名:www.chentongwei.com

2、自定义配置文件加载位置

1、定义

若我们不想用以上的目录,该怎么自定义位置呢?可以用spring.config.location=来指定。项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置。但是你指定后,启动SpringBoot并不会生效,是因为启动方式应该是

java -jar xxx.jar --spring.config.location=E:/application.properties

这样我们启动的时候就会加载E盘的application.properties

2、例子

java -jar xxx.jar --spring.config.location=E:/application.properties

3、用途

我觉得非常好用,这样运维人员部署的时候,直接用一个命令启动起来后,如果发现配置的bug了,直接更改配置文件然后重启jar即可,无需重新打包在部署上线。



作者:编程界的小学生
链接:https://www.jianshu.com/p/d2d5b25188a8

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP