0

我有一个微服务,我想拥有一些依赖于环境的属性,所以我使用 application.yml、application-dev.yml、application-int.yml 等.....

启动时,我通过spring.profiles.active=myprofile并且相关applicaiton-myprofile.yml的内容与applicaiton.yml. 到目前为止一切正常。

但是现在我想将我的一些非特定于环境的属性分类到他们自己的业务模块中,所以除了我的 application.yml applicaiton-.yml我还想将更多 yml 文件中的属性加载到 springENVIRONMENT中。所以我可以创建正确的 BusinessConfigProperties 类@ConfigurationProperties

为此,我尝试在 spring.config.location 中添加这些 yml 文件名,如下所示

     spring:
          config:
            name:
              - some-props
              - very-different-name-props
            location:
              - classpath:/config/*

我也提供了配置名称,我所有的 yml 文件都存在于 /config 文件夹中

但我仍然无法读取这些文件中提到的任何属性。

org.yaml.snakeyaml.Yml我可以通过手动加载带有太多样板代码的文件来克服这个问题,以读取 YML 映射并实例化我的类。应该有一个简单的方法来实现这一点。

更新

我在上面更新为,

     spring:
          config:
            location:
              - classpath:classpath:/config/some-props.yml,classpath:/config/very-different-name-props.yml

但这也不起作用我没有使用配置文件,因为与上述文件一起,我已经拥有applicaiton-<profile>.yml了特定于环境的属性。我将spring.profile.active在启动 jvm 参数中作为环境名称传递。另外我不想以 application-<added_profile>.yml 开头命名这些文件

4

1 回答 1

0

也许只是输入你的问题,它应该是spring.profiles.active=myprofile

您可以尝试以下尝试加载多个文件的方法

spring:
  config:
    location: classpath:/config/some-props.yml,classpath:/config/some-Other-props.yml

spring:
  profiles:
    include:
      - CustomPropertiesFile

你也可以参考这个https://youtu.be/0G9X-pTv_UU

http://roufid.com/load-multiple-configuration-files-different-directories-spring-boot/

于 2020-10-09T02:29:49.993 回答