Настройка Spring Переменная профиля

У меня есть два профиля Spring: "dev" и "test". Я хочу установить активный профиль в серверной среде, я не хочу его устанавливать в своем коде, чтобы везде, где я развертываю приложение, профиль загружается на основе профиля на сервере. Как я могу это сделать?

Ответ 1

Вы можете просто установить системное свойство на сервере следующим образом:

-Dspring.profiles.active=test

Изменить: Чтобы добавить это в tomcat в eclipse, выберите Run -> Run Configurations и выберите конфигурацию запуска Tomcat. Перейдите на вкладку Arguments и добавьте -Dspring.profiles.active = test в конце VM arguments. Другим способом было бы добавить свойство к вашим свойствам catalina.properties в вашем проекте Servers, но если вы его добавите, опустите -D

Изменить: Для использования с Spring загрузкой у вас есть дополнительный выбор. Вы можете передать свойство как аргумент программы, если вы добавите свойство с двумя тире.

Вот два примера, используя Spring загрузочный файл jar...

Системное свойство

[[email protected] ~]$ java -jar -Dspring.profiles.active=test myproject.jar

Аргумент программы

[[email protected] ~]$ java -jar myproject.jar --spring.profiles.active=test

Ответ 2

Существует как минимум два способа сделать это:

  • определение контекстного параметра в web.xml - это разрывает оператор "один пакет для всех сред". Я не рекомендую, чтобы

  • определение системного свойства -Dspring.profiles.active=your-active-profile

Я считаю, что определение системного свойства - гораздо лучший подход. Итак, как определить системное свойство для Tomcat? В Интернете я мог найти много советов, таких как "modify catalina.sh", потому что вы не найдете никакого конфигурационного файла для подобных действий. Модификация catalina.sh - это грязное неисправимое решение. Существует лучший способ сделать это.

Просто создайте файл setenv.sh в каталоге Tomcat bin с содержимым:

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=dev"

и он будет загружен автоматически во время запуска или запуска Catalina.sh.

Вот блог, описывающий вышеупомянутое решение. Раздел комментариев интересен, поскольку он рассказывает о более подробной информации.

Ответ 3

как системная среда. Переменная:

Окна: Start → type "envi" выберите переменные среды и добавьте новое: Name: spring_profiles_active Value: dev (или что-то другое)

Linux: добавьте следующую строку в /etc/environment в разделе PATH:

spring_profiles_active=prod (или любой профиль)

а затем export spring_profiles_active=prod, так что теперь вы будете в нем.