Spring Boot - Профили (application.properties) для определения baseUrl для HTTP-запросов - PullRequest
0 голосов
/ 06 февраля 2020

Ситуация такова, что у меня есть два проекта API, API A выполняет HTTP-запросы к API B. Оба API развернуты в среде разработки и производства.

Я хочу добиться следующего: создать проект на основе определенного профиля c (dev или prod), чтобы код мог использовать определенный baseurl для взаимодействия с правильным API в правильной среде. .

Поэтому, если я создаю API A на основе флага prod, я хочу, чтобы он использовал URL-адрес speci c для отправки http-запросов к API B, развернутому в его собственной среде prod.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

Похоже, вы имеете в виду профили maven, однако вам, вероятно, стоит проверить пружинные профили. Концепция должна измениться:

Вы не должны создавать различных артефактов для разных сред.

Вместо этого создайте профиль пружины в сервисе A:

application-dev.properties:

url.addr=dev-service-host:1234
application-prod.properties:

url.addr=prod-service-b-host:4321

Затем запустите приложение с флагом --spring.profiles.active=dev (или prod).

Spring boot автоматически загрузит правильные определения, потому что dev / prod соответствует суффиксу файла свойств

0 голосов
/ 06 февраля 2020

Вы можете определить профиль Spring-Boot как:

spring.profiles.active=prod

Вы также должны иметь профилированные .properties файлы в resources:

  • в application-dev.properties у вас должно быть api.b.url={api_b_url_on_dev_environment}

  • в application-prod.properties у вас должно быть api.b.url={api_b_url_on_prod_environment}

Или , если вы не хотите перекомпилировать свое приложение после изменения свойств, вы можете использовать внешние .properties файлы.

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

  • в некоторых каталогах config добавьте application-dev.properties и application-prod.properties
  • , чтобы развернуть приложение со следующими свойствами: --spring.profiles.active=dev и --spring.config.additional-location=config/application.properties

This способ, которым внешние профилированные свойства будут включены в процесс развертывания. Эти .properties файлы имеют самый высокий приоритет в Spring.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...