首页 > 解决方案 > 如何在不同配置文件的属性中获取多个默认值?

问题描述

我有几个具有相同配置的微服务,每个都依赖于 Spring 配置文件。@ConfigurationProperties采用我在 YAML 应用程序配置文件中的值。我想将此配置移到一个通用项目中,并移出微服务 YAML 配置。

问题是我对不同的配置文件有 2 种不同的配置。我可以@Value用来注入默认值,但我只能这样做一次。有没有办法让多个默认值取决于特定的 Spring 配置文件?

在我的项目中,我们使用 Java 配置,而不是 XML。

标签: javaspringspring-boot

解决方案


如果您想从公共位置读取属性,请写入bootstrap.yml您的微服务并删除application.yml

引导程序.yml:

spring:
  config:
    location: file:/home/external/properties/location/
    name: application
  profiles:
    active: dev

文件位置:/home/external/properties/location/

假设您需要开发和生产环境。然后将这 3 个属性文件保存在此位置。

application.yml

application-dev.yml

application-prod.yml

Spring Bootapplication.yml首先读取属性。如果在中设置活动配置文件devbootstrap.ymlapplication.yml值被覆盖application-dev.yml

对于不同的值,只需更改微服务中bootstrap.yml的活动配置文件。


推荐阅读