У меня есть два профиля Spring: "dev" и "test". Я хочу установить активный профиль в серверной среде, я не хочу его устанавливать в своем коде, чтобы везде, где я развертываю приложение, профиль загружается на основе профиля на сервере. Как я могу это сделать?
Настройка Spring Переменная профиля
Ответ 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
, так что теперь вы будете в нем.