Несколько файлов свойств для одного и того же приложения Spring Boot на основе запроса

#java #spring #spring-boot #spring-cloud-config

#java #spring #spring-boot #spring-cloud-config

Вопрос:

У меня есть приложение Spring Boot для автоматизации тестирования пользовательского интерфейса с использованием Cucumber и Selenium. Ожидается, что приложение будет тестировать несколько сред.
Для начала я создал файлы json с требуемыми свойствами, такими как URL, учетные данные и т.д., И загрузил их (передал путь к файлу в качестве свойства и использовал его) При запуске теста ( mvn test -DconfigFile=config/env1_config.json ).

Я вижу, что использование профилей во время выполнения теста — это вариант -Dspring.profiles.active=client1 но поскольку я настрою несколько конвейеров в Jenkins для тестирования нескольких сред, чтобы использовать один и тот же проект с разными файлами конфигурации, он будет клонировать весь проект и запускать тесты в рабочей области, соответствующей конвейеру. Чтобы избежать хранения нескольких копий проекта, я планирую использовать Rest API для запуска тестов Selenium и иметь файлы конфигурации в Git.

Возможно ли создать несколько файлов свойств приложения с пользовательскими свойствами, поместить их в Git и использовать требуемый файл свойств в приложении Spring Boot (внутри Rest API impl) на основе свойства или RequestParam с использованием Spring Cloud Config или чего-то еще?

Ответ №1:

вы можете использовать профили spring boot и передать их в качестве аргумента maven

просто передайте -Dspring.profiles.active=test1 в качестве аргумента командной строки

вы можете прочитать больше здесь

Ответ №2:

Вы можете сделать это, установив spring.profiles.active переменную среды. Например, если вы используете файл свойств для каждой среды по соглашению application-dev.properties, application-qa.properties. Вы можете определить себя spring.profiles.active как разработчика и qa.

Вы можете обратиться к приведенной ниже ссылке для получения дополнительной информации на сайте same.

https://stackabuse.com/spring-boot-configuring-properties/

Ответ №3:

Вы можете использовать сервер Spring Cloud и клиент.

Создайте проект с зависимостью Spring cloud server и создайте там конфигурационный файл (appilcation.properties). Для использования этого конфигурационного файла в другом микросервисе просто добавьте зависимость spring cloud cilent в другие проекты и добавьте эту строку в application.properties

 spring.cloud.config.uri:[your spring cloud server project url]
  

ссылка:-

  1. spring cloud server: — https://www.youtube.com/watch?v=gb1i4WyWNK4amp;list=PLqq-6Pq4lTTaoaVoQVfRJPqvNTCjcTvJBamp;index=11
  2. клиент spring cloud: — https://www.youtube.com/watch?v=E2HkL766VHsamp;list=PLqq-6Pq4lTTaoaVoQVfRJPqvNTCjcTvJBamp;index=12

Ответ №4:

Разделяю подход, к которому я пришел, поскольку это может кому-нибудь когда-нибудь помочь.

Поскольку я хотел создать Rest API и использовать свойства из разных файлов конфигурации в реализации API на основе запроса api, я создал серверное приложение Spring Cloud Config, которое подключается к репозиторию свойств приложения в git, и я использовал Rest API, предоставляемые Spring Cloud Config Server (хост: порт / приложение / профиль) на уровне сервиса моей реализации Rest API.