一尘不染

使用Spring Boot启动Yml配置文件“继承”

spring-boot

我在网上找不到直接的答案。

Spring Boot的yml文件是否彼此“继承”?我的意思是如果我有: application.yml其中有

server:
  port: 80
  host: foo

而且application-profile1.yml只有

server:
  port: 90

因此,如果我profile1以活动配置文件启动Spring Boot ,是否还将server.host属性设置为foo


阅读 2439

收藏
2020-05-30

共1个答案

一尘不染

是的,application.yml文件的优先级高于任何application-{profile}.yml文件。特定于配置文件的yml文件中的属性将覆盖默认application.yml文件中的值,特定于配置文件的yml文件中不存在的属性将从默认文件中加载。它适用于.properties文件以及bootstrap.ymlbootstrap.properties

Spring Boot文档在 72.7更改配置中
提到了这一点, 具体取决于环境
段落:

在此示例中,默认端口为9000,但是如果Spring概要文件“ development”处于活动状态,则该端口为9001,如果“
production”为活动,则其为0。

YAML文档按照它们遇到的顺序进行合并(因此,较新的值将覆盖较早的值)。

要对属性文件执行相同的操作,可以使用application-${profile}.properties指定特定于配置文件的值。

2020-05-30