gpt4 book ai didi

Spring Cloud Config Server - 占位符标签

转载 作者:行者123 更新时间:2023-12-03 23:22:26 25 4
gpt4 key购买 nike

我使用 Spring Boot 开发了一个微服务。该服务正在使用 Spring 云配置服务器获取属性。此微服务在 header 中接受版本,并根据版本执行相应的功能。在我的 github repo 中,我有 2 个分支,每个版本 1 个。该服务通常将以下信息发送到配置服务器以获取属性 -

应用程序名称 + 配置文件 + 标签

有没有办法在我的 .yml 文件中使用占位符代替标签?如果我在标题中看到 v1,我希望标签动态设置为 v1,否则为 v2。

编辑:

我在“Git URI 中的占位符”部分看到了本文档 (http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html) 中对占位符的引用,但是我不确定如何从传入的请求中动态替换值

最佳答案

spring-cloud-config-server 提供了几个可用的 REST API,允许直接查询属性文件:

$ hostname:port/{label}/{name}-{profiles}.properties]

您可以动态使用您选择的任何标签,只要它与 git 上的现有标签匹配。

例如,要检索 application.properties ,标记为 v1在 git 中:
 $ http://${hostname}:${port}/v1/application.properties

配置服务器 REST API:
  • /{name}/{profiles}/{label:.*
  • /{label}/{name}-{profiles}.properties
  • /{name}-{profiles}.json
  • /{label}/{name}-{profiles}.json
  • /{label}/{name}-{profiles}.yml
  • /{label}/{name}-{profiles}.yaml
  • /{name}-{profiles}.yml
  • /{name}-{profiles}.yaml
  • /{name}/{profiles:.[^-].}
  • /{name}-{profiles}.properties
  • /{name}/{profile}/{label}/**


  • 我试了一个样本 spring-cloud-server在 git 上带有属性文件的项目。我应用了 git 标签 v1v2每个标签在文件中具有不同的值(我使用了配置文件 remote ):

    标签 v1 :
    http://localhost:8888/v1/application-remote.properties
    > testproperty: remotevalue-v1

    标签 v2 :
    http://localhost:8888/v2/application-remote.properties
    > testproperty: remotevalue-v2

    无标签 :
    http://localhost:8888/application-remote.properties
    > testproperty: remotevalue-master

    Java代码

    我没有尝试过,但我想您也可以使用 cloud-config-server 的 java API(直接注入(inject)和调用 Controller ,而不是执行 http 请求):
    @Autowired
    EnvironmentController environmentController;
    ...

    Environment labelled = environmentController.labelled("application", "remote", "v1");
    Map<?, ?> keyValues = labelled.getPropertySources().get(0).getSource();

    关于Spring Cloud Config Server - 占位符标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37935024/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com