Обмен технологиями

Как настроить различные переменные среды и принципы для проектов Java

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Как настроить разные профили

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

Создайте или добавьте файл application.yml в каталог src/main/resources вашего проекта Spring Boot. Здесь Spring Boot по умолчанию ищет файлы конфигурации. Этот файл может добавлять общие конфигурации.

Затем вы также можете создать файлы, такие как application-test.yml, application-prod.yml и т. д., в том же каталоге. Spring Boot автоматически распознает эти файлы конфигурации, специфичные для профиля. В этих файлах вы можете определить параметры для различных сред, такие как адреса баз данных, адреса кэша Redis и т. д.
То есть в каталоге src/main/resources может быть несколько таких файлов:

application.yml
application-prod.yml
application-test.yml
  • 1
  • 2
  • 3

Затем вы можете использовать application-test.yml и application-prod.yml для объявления двух переменных с одинаковой конфигурацией, но с разными значениями.например
приложение-test.yml:

mysql:
  url: https://xx.test.com/mysql
  • 1
  • 2

приложение-prod.yml:

mysql:
  url: https://xx.online.com/mysql
  • 1
  • 2

В Java-коде вы можете использовать этот URL-адрес динамически:

    @Value("${mysql.url}")
    protected String mysqlUrl;
  • 1
  • 2

Идеальный.

Итак, как автоматически использовать соответствующий файл Profile-Specific.yml при работе системы?Пожалуйста, смотрите ниже

Принцип автоматического переключения профилей

Давайте посмотрим, как переменные среды передаются в проект слой за слоем из внешней сети.
Прежде всего, Java-проект обычно упаковывается с помощью Docker. Итак, начнем с докера:

  1. Команда упаковки Docker с параметрами среды:
docker build -f assistant-web-api/qke/Dockerfile -t docker-registry.qiyi.virtual/mbd-ai/assistant-web-api-test:$tag . --build-arg dc_env=test
  • 1

Ключевые слова,сборка-аргумент , установите параметр dc_env=test

  1. Docker-файл, объявитеdc_envи используется для команды mvn
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
  • 1
  • 2
  • 3

Обратите внимание, что -P означает настройку профиля.

  1. pom.xml, настройка различных сред

Команда mvn на предыдущем шаге добавила -P. Где она используется? Конечно, он находится в файле конфигурации marven — pom.xml.

<profiles>
        <profile>
            <id>test</id>
            <properties>
                <profile.active>test</profile.active>
                <log.env>test</log.env>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profile.active>prod</profile.active>
                <log.env>prod</log.env>
            </properties>
        </profile>
    </profiles>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

Выше добавлены две переменные среды.Для каждой переменной задаются свойства, то естьпрофиль.активный
Где можно использовать это значение?

Используйте его в основном файле application.yml!

server:
  profiles:
    active: @profile.active@
  • 1
  • 2
  • 3

Определите, какой профиль использовать, на основе значения переменной Profile.active на предыдущем шаге.

С тех пор переменные, определенные из пакета docker, были переданы в основной файл yml. В этом файле, какое бы значение ни было server.profiles.active, какая конфигурация sub-yml будет использоваться. Например, если это тест, будет загружена конфигурация application-test.yml! ! !

Как переключать среды в среде разработки

  1. Во-первых, marven сначала синхронизируется. После синхронизации проверьте среду.
    Вставьте сюда описание изображения

  2. Затем скомпилируйте и упакуйте локально и укажите переменные среды через -P:
    Вставьте сюда описание изображения

  3. Наконец, чтобы запустить, нажмите на верхний правый угол изображения ниже. Появится всплывающее окно «Редактировать конфигурацию». В активном профиле введите соответствующие переменные среды, например test.
    Вставьте сюда описание изображения

  4. Наконец, вы можете нажать «Выполнить!».