针对特定环境的spring yml文件

Ama*_*Dev 8 java spring yaml spring-boot

我有3个yml文件

  • application-default.yml - >默认属性,应该在所有配置文件中都可用
  • application-dev.yml - >仅适用于dev配置文件的属性
  • application-prod.yml - >仅适用于prod配置文件的属性

当我通过传递启动我的启动应用程序时-Dspring.profiles.active=dev,我能够访问application-dev.yml特定的属性.但我无法获得application-default.yml文件中定义的属性.以下是我的application-dev.yml档案:

Spring:
 profiles:
  include: default

spring.profiles: dev

prop:
 key:value
Run Code Online (Sandbox Code Playgroud)

Dan*_*ski 21

TL; DR

只需将application-default.yml文件重命名为application.yml,就可以按预期工作.

说明

根据文档中的描述,当您使用名称与后缀匹配的配置文件运行应用程序时,将激活名为application- {suffix} .yml的文件.此外,默认情况下会加载主application.yml,因此它是放置所有配置文件的公共属性的理想位置.或者,如果要将文件名保存为application-default.yml,可以将两个配置文件传递给Spring Boot应用程序:

-Dspring.profiles.active=default,dev
Run Code Online (Sandbox Code Playgroud)

这样您将激活两个配置文件,并且将加载两个属性文件.


Ama*_*Dev 5

我能够解决我的问题,这就是我所做的。

创建了一个文件application-common.yml,在其中放置了通用属性。然后在application- {env} .yml文件中,将其放在顶部。

spring:
 profiles:
  include: default
Run Code Online (Sandbox Code Playgroud)

由于我不需要专门加载默认配置文件,因此这对我有用!!!

  • 只是好奇,与以前的设置相比有什么变化。这看起来类似于您之前在 application-dev.yml 中的内容。 (2认同)