Как избежать символа косой черты в имени ветки (метке) в Spring Cloud Config

В Spring Cloud Config, если у вас есть ветка (метка), содержащая /, она не будет получать правильную ветку с сервера конфигурации облака.

Рассмотрим следующие свойства в 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

Хотя очевидно, что этот вызов не будет работать из-за лишних / в названии нашего лейбла. Как использовать метку, содержащую / в этой конфигурации?


person buræquete    schedule 16.04.2017    source источник


Ответы (1)


Решение очень простое, просто замените /, прерывающее вызов сервера конфигурации, на (_), так, например, feature/new будет feature(_)new в нашем bootstrap.yml;

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

И вызов RESTful на сервер конфигурации будет;

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

Что приведет к успешной выборке правильной ветки, а именно feature/new

Больше подробностей; проверьте здесь и здесь.

person buræquete    schedule 16.04.2017