Установите профиль на bootstrap.yml в spring cloud для назначения другого сервера конфигурации

Я использую docker compose для запуска всех моих микро-сервисов. Для каждой службы я даю ей короткое имя хоста.

version: '2'

services: 
  config:
    image: springbox-config-server
    restart: always
    ports:
     - "8890:8890"

  discovery:
    image: springbox-eureka
    restart: always
    ports:
     - "8763:8763"

поэтому в моем микро-сервисе я должен нацелить configserver с его коротким именем хоста.

spring:
  application:
    name: myservice
  cloud:
    config:
      uri: http://config:8890
      fail-fast: true

однако, когда я запускаю их локально в своей IDE без docker, короткое имя хоста не может быть разрешено.

поэтому я ищу решение для целевого другого сервера конфигурации в соответствии с моей средой.

1 ответов


Я нашел решение. В принципе, мы используем spring profile для обогащения файла начальной загрузки. Например

spring:
  application:
    name: myservice
  cloud:
    config:
      uri: http://config:8890
      fail-fast: true

---
spring:
  profiles: development
  cloud:
    config:
      uri: http://localhost:8890

хорошей новостью является то, что нам не нужно переписывать все свойства в профиле. Свойства по умолчанию наследуются. Например, когда профиль разработки включен, мое имя приложения наследуется от имени по умолчанию, называемого always myservice.

чтобы активировать профиль, запустите службу со следующим свойством

-Dspring.profiles.active=development