为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
SpringBoot

一、基础

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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消