Экстернализация профилей приложений в spring boot с помощью нескольких веб-приложений, запущенных на tomcat

#spring-boot #unix #tomcat9

Вопрос:

Я новичок в spring boot и tomcat. У меня есть несколько веб-приложений 3, запущенных в tomcat.

У меня есть 3 веб-приложения(весенняя загрузка), запущенные на tomcat, а именно app1, app2 и app3. В моем профиле приложения у меня есть 3 файла yaml(по одному для каждого приложения).

 application-app1.yml application-app2.yml application-app3.yml  

Кроме того, мое окружение настроено следующим образом:

 JAVA_OPTS='-Dspring.profile.active=uat,qa,default'  

В /tomcat/веб-приложении у меня есть следующие папки:

 app1 app2 app3  

Профили приложений выбирают внешний файл yml, когда я добавляю другие имена файлов в качестве приложения-uat.yml Но, если это произойдет, то все приложение получит один и тот же файл yml.

Мой вопрос:

Как я могу гарантировать, что определенные файлы yml будут подобраны для этого конкретного приложения?

ТИА

Ответ №1:

Вы можете указать имена внешних файлов конфигурации, настроив spring.config.additional-location параметр в каждом WEB-INF/web.xml файле приложений. Например, для app1 у вас может быть такая конфигурация…

 lt;?xml version="1.0" encoding="UTF-8"?gt; lt;web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"gt;  lt;context-paramgt;  lt;param-namegt;spring.config.additional-locationlt;/param-namegt;  lt;param-valuegt;file:./config/app1.ymllt;/param-valuegt;  lt;/context-paramgt; lt;/web-appgt;