适用于特定环境的弹簧 yml 文件

2022-09-02 19:55:00

我有3个文件,即yml

  • application-default.yml->默认属性,应在所有配置文件中可用
  • application-dev.yml->属性仅适用于开发人员配置文件
  • application-prod.yml->属性仅适用于产品配置文件

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

Spring:
 profiles:
  include: default

spring.profiles: dev

prop:
 key:value

答案 1

TL;DR

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

解释

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

-Dspring.profiles.active=default,dev

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


答案 2

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

创建了一个文件 application-common.yml,将通用属性放在那里。然后在应用程序-{env}.yml文件中,我把它放在顶部。

spring:
 profiles:
  include: default

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


推荐