加载和覆盖
springboot约定⼤于配置让我们省了很多⼼,但是很多约定我们却不是很确定
⽐如同时⽀持l和application.properties那么谁配置为准呢?是怎样⽣效的呢?
水电安装合同范本
同时配置的加载和覆盖问题
同时配置.yml和.properties的时候,是⼆者都⽣效,但是后⾯加载的会覆盖掉前⾯加载名称相同的属性,你可以理解为map,名称⼀样的被认定为是同⼀个配置,⽐如端⼝号。
伊能静儿子
这个规则不仅仅对l和application.properties⽣效,对于衍⽣的l,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
大好时光罗一洋
2017父亲节有⼈说你不会复制粘贴么?你先复制四个spring.datasource,然后再写配置?有些舍本逐末了,我本来就是配置项,我还先打个框架,你往⾥⾯填。。。
=xxx
但是旧的项⽬可能会使⽤properties的⽐较多,因为看习惯了,看yml总觉得没写对,会不会少了⼀个空格导致配置⽂件读取失败的问题,这个也难免,但是后⾯对于我们⾃⼰需要维护开发的本地环境,我们可以新增yml⽂件。
搭建yml配置
之前讲过了覆盖原理,其实我们很简单,
把application.properties中的spring.profiles.active=local改成我们的,⽐如我取个名字spring.profiles.active=qiushi
然后这个qiushi配置⽂件是没有properties⽂件的,所有就不⽤担⼼覆盖的问题。
新建l⽂件。
然后把之前启⽤的配置⽂件⾥⾯的配置移动过来就好了。