我在网上找不到直接的答案。
Spring Boot的yml文件是否彼此“继承”?我的意思是如果我有: application.yml其中有
application.yml
server: port: 80 host: foo
而且application-profile1.yml只有
application-profile1.yml
server: port: 90
因此,如果我profile1以活动配置文件启动Spring Boot ,是否还将server.host属性设置为foo?
profile1
server.host
foo
是的,application.yml文件的优先级高于任何application-{profile}.yml文件。特定于配置文件的yml文件中的属性将覆盖默认application.yml文件中的值,特定于配置文件的yml文件中不存在的属性将从默认文件中加载。它适用于.properties文件以及bootstrap.yml或bootstrap.properties。
application-{profile}.yml
.properties
bootstrap.yml
bootstrap.properties
Spring Boot文档在 72.7更改配置中 提到了这一点, 具体取决于环境 段落:
在此示例中,默认端口为9000,但是如果Spring概要文件“ development”处于活动状态,则该端口为9001,如果“ production”为活动,则其为0。 YAML文档按照它们遇到的顺序进行合并(因此,较新的值将覆盖较早的值)。 要对属性文件执行相同的操作,可以使用application-${profile}.properties指定特定于配置文件的值。
在此示例中,默认端口为9000,但是如果Spring概要文件“ development”处于活动状态,则该端口为9001,如果“ production”为活动,则其为0。
YAML文档按照它们遇到的顺序进行合并(因此,较新的值将覆盖较早的值)。
要对属性文件执行相同的操作,可以使用application-${profile}.properties指定特定于配置文件的值。
application-${profile}.properties