моя контактная информация
Почтамезофия@protonmail.com
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
Затем вы можете использовать application-test.yml и application-prod.yml для объявления двух переменных с одинаковой конфигурацией, но с разными значениями.например
приложение-test.yml:
mysql:
url: https://xx.test.com/mysql
приложение-prod.yml:
mysql:
url: https://xx.online.com/mysql
В Java-коде вы можете использовать этот URL-адрес динамически:
@Value("${mysql.url}")
protected String mysqlUrl;
Идеальный.
Итак, как автоматически использовать соответствующий файл Profile-Specific.yml при работе системы?Пожалуйста, смотрите ниже
Давайте посмотрим, как переменные среды передаются в проект слой за слоем из внешней сети.
Прежде всего, Java-проект обычно упаковывается с помощью 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
Ключевые слова,сборка-аргумент , установите параметр dc_env=test
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
Обратите внимание, что -P означает настройку профиля.
Команда 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>
Выше добавлены две переменные среды.Для каждой переменной задаются свойства, то естьпрофиль.активный
Где можно использовать это значение?
Используйте его в основном файле application.yml!
server:
profiles:
active: @profile.active@
Определите, какой профиль использовать, на основе значения переменной Profile.active на предыдущем шаге.
С тех пор переменные, определенные из пакета docker, были переданы в основной файл yml. В этом файле, какое бы значение ни было server.profiles.active, какая конфигурация sub-yml будет использоваться. Например, если это тест, будет загружена конфигурация application-test.yml! ! !
Во-первых, marven сначала синхронизируется. После синхронизации проверьте среду.
Затем скомпилируйте и упакуйте локально и укажите переменные среды через -P:
Наконец, чтобы запустить, нажмите на верхний правый угол изображения ниже. Появится всплывающее окно «Редактировать конфигурацию». В активном профиле введите соответствующие переменные среды, например test.
Наконец, вы можете нажать «Выполнить!».