application.yml和application.properties和-dev加载和覆盖

springboot约定大于配置让我们省了很多心,但是很多约定我们却不是很确定

比如同时支持application.yml和application.properties那么谁配置为准呢?是怎样生效的呢?

同时配置的加载和覆盖问题

同时配置.yml和.properties的时候,是二者都生效,但是后面加载的会覆盖掉前面加载名称相同的属性,你可以理解为map,名称一样的被认定为是同一个配置,比如端口号。

这个规则不仅仅对application.yml和application.properties生效,对于衍生的application-dev.yml,application-dev.properties也生效

可以测试一下

同时有application的yml和properties文件和application-dev的yml和properties文件

端口依次为8101、8102、8103、8104

application两个配置里面都启用dev,spring.profiles.active=dev

最后结果是8104是application-dev.properties生效。
加载的顺序从
application->yml->properties->
application-dev->yml->properties,最后覆盖下来是8104.

迁移properties到yml文件

我不喜欢properties文件,原因无他,就是拿最常见的数据库配置,我要写四次spring.datasource,写的难受,读的也难受。

spring.datasource.driver=xxx
spring.datasource.url=jdbc:mysql://xxx
spring.datasource.username=xxx
spring.datasource.password=xxx

有人说你不会复制粘贴么?你先复制四个spring.datasource,然后再写配置?有些舍本逐末了,我本来就是配置项,我还先打个框架,你往里面填。。。

spring.datasource.xxx=xxx

但是旧的项目可能会使用properties的比较多,因为看习惯了,看yml总觉得没写对,会不会少了一个空格导致配置文件读取失败的问题,这个也难免,但是后面对于我们自己需要维护开发的本地环境,我们可以新增yml文件。

搭建yml配置

之前讲过了覆盖原理,其实我们很简单,

把application.properties中的spring.profiles.active=local改成我们的,比如我取个名字spring.profiles.active=qiushi

然后这个qiushi配置文件是没有properties文件的,所有就不用担心覆盖的问题。

新建application-qiushi.yml文件。
然后把之前启用的配置文件里面的配置移动过来就好了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值