如何在 Spring Cloud Config 中转义分支名称(标签)中的斜杠字符

How to escape a slash character within a branch name (label) in Spring Cloud Config

在 Spring 云配置中,如果您有一个包含 / 的分支(标签),它不会从云配置服务器获取正确的分支。

请考虑我们产品 bootstrap.yml 中的以下属性 TheApp

spring:
  application:
    name: TheApp
  profiles:
    active: test
  cloud:
    config:
      uri: http://myconfigserver.com

并且我们为我的云配置标签包含分支 feature/new,如下所示直接使用它;

spring:
  cloud:
    config:
      label: feature/new

因为这将转化为以下 RESTful 从我们的 TheApp 应用程序调用配置服务器;

http://myconfigserver.com/{name}/{profile}/{label}

这将是;

http://myconfigserver.com/TheApp/test/feature/new

虽然很明显这个调用不会工作,因为我们的标签名称中有额外的 /。如何在此配置中使用包含 / 的标签?

解决方案非常简单,只需将破坏对配置服务器调用的 / 替换为 (_),例如 feature/new 将是 feature(_)new我们的 bootstrap.yml;

spring:
  cloud:
    config:
      label: feature(_)new

对配置服务器的 RESTful 调用将是;

http://myconfigserver.com/TheApp/test/feature(_)new

这将导致成功获取正确的分支,即 feature/new

了解更多详情;检查 here, and here.