Можно ли совмещать автоконфигурацию и активные профили в весенней загрузке?

Мой вопрос об автоконфигурации весенней загрузки и о том, можно ли задавать значения свойств по умолчанию в зависимости от того, какой профиль активен.

Иногда одни и те же свойства добавляются во многих микросервисах. Например, если мы зависим от чванства клиента. Затем URL-адрес конечной точки для всех различных сред должен быть установлен во всех проектах, которые используют этот клиент. Было бы хорошо, если бы мы могли установить это в стартовом проекте для этого клиента. Тогда было бы только одно место, где мы должны были бы поддерживать это.

Но свойство не одинаково во всех средах, поэтому должно быть возможно иметь значение по умолчанию для среды. Есть ли лучший способ сделать это?

1 ответ

Если вы используете сервис конфигурирования Spring Cloud, вы можете настроить свою конфигурацию следующим образом:

src/main/resources/
    bootstrap.yml
    bootstrap-profile1.yml
    bootstrap-profile2.yml
    ...
src/main/resources/profile1/
        application.yml
        service1.yml
        service2.yml
        ....
src/main/resources/profile2/
        application.yml
        service1.yml
        service2.yml
        ....  

Где application.yml в каждой папке профиля будет иметь конфигурации по умолчанию для каждой службы, которые могут быть переопределены в файле конфигурации этой службы.

bootstrap.yml будет выглядеть так:

spring:
  application:
    name: config-service
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/profile1,classpath:/profile2,...
  profiles:
    active: native,${CONFIG_ENV}
Другие вопросы по тегам