如何参数化搜索位置路径以在其他配置文件中重用

问题描述 投票:0回答:1

我有不同的文件(yml和xml文件),我正在硬编码包含我的配置文件的相同文件夹路径。我想参数化这个路径,所以我可以移动我的配置并仅修改我的参数一次。

我的bootstrap.yml

...
      cloud:
        config:
          failFast: true     
          server:
            bootstrap: true
            prefix: /config
            native:
              search-locations: file:///C:/dev/workspace/application/config/{profile}

我的application-dev.yml

...
logging:
  config: file:///C:/dev/workspace/application/config/{profile}/log4j2-dev.xml

我的integration-config.xml:

<context:property-placeholder location="file:///C:/dev/workspace/application/config/${spring.profiles.active}/application-${spring.profiles.active}.properties" />

我怎样才能做到这一点?在这种情况下,最佳做法是什么?或者甚至是参考化Spring Config Server文件系统的搜索位置路径的好习惯?

spring spring-boot spring-cloud spring-cloud-config
1个回答
0
投票
  1. 首先说我几乎不在本地文件系统(外部类路径)中直接使用配置文件(yml属性xml ...)进行本地测试。对于spring-cloud-config,如果你使用远程位置包含配置,问题可能会有所不同。
  2. 第二,你使用了像mavengradle这样的项目经理工具吗?因为maven是我心目中的spring-boot项目构建的默认工具。对于maven,有像Maven Resources Plugin这样的插件可以将你的配置变量参数化为pom.xml,它可以帮助你在构建步骤中为一个文件中的所有变量修改一次参数,并且与gradle相同。
  3. 对于spring-cloud-config,可以将几乎所有配置属性移动到它。意味着您可以将配置属性从application-dev.ymlintegration-config.xml移动到spring-cloud-config的配置文件,在您的情况下是file:///C:/dev/workspace/application/config/{profile},它将在运行时加载为弹簧自动配置的env变量,或者您可以@Autowired加载到Environment,如果您想要手动获取它。
© www.soinside.com 2019 - 2024. All rights reserved.