2016-07-22 4 views
12

У меня есть проект Spring, который использует другой проект. Каждый проект имеет свой собственный профиль пружины, инициализированный из java-кода, используя applicationContext.xml и *.properties для каждого профиля. Я вставляю профиль от args[]. Проблема в том, что второй проект использует конфигурацию по умолчанию для env изapplicationContext.xml Я не могу ввести env от args[] ко второму проекту, и я попытался найти статью, которая объяснит, как работает профиль Spring.Как установить профиль Spring из системной переменной?

  1. Есть ли иерархия, на которой будет отображаться профиль, когда по умолчанию не настроен на applicationContext.xml?
  2. Является ли System var более сильным, чем applicationContext.xml Конфигурация?
  3. Что вы считаете лучшим решением моей задачи?

Статьи на эту тему или даже примеры были бы очень признательны !! Спасибо заранее.

ответ

20

Если вы предоставите JVM профиль Spring не должно быть никаких проблем:

java -Dspring.profiles.active=development -jar yourApplication.jar 

см Также весна-документ:

http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html

69,5 Набор активных профилей Spring

Весенняя среда ent имеет API для этого, но обычно вы должны установить свойство System (spring.profiles.active) или среду ОС переменной (SPRING_PROFILES_ACTIVE). Например. запустить приложение с -D аргумента (не забудьте поставить его перед основным классом или архива JAR):

$ Java -jar -Dspring.profiles.active = производство демо-0.0.1-SNAPSHOT.jar

В Spring Boot вы также можете установить активный профиль в application.properties, например

spring.profiles.active = производство

значение устанавливается таким образом, заменяется свойством системы или среды переменной настройки, но не по SpringApplicationBuilder.profiles() метода. Таким образом, последний Java API можно использовать для увеличения профилей без изменения значений по умолчанию.

См. Главу 25 «Профили в разделе« Весенняя загрузка »для .

1

Мое решение состоит в том, чтобы установить переменную окружения как spring.profiles.active=development. Чтобы все приложения, запущенные на этом компьютере, ссылались на эту переменную и запускали приложение.Порядок, в котором пружина загружает свойства следующим образом

application.properties 
system properties 
environment variable 
1

Если я запустить командную строку: java -Dspring.profiles.active=development -jar yourApplication.jar из моего каталога WebApplication говорится, что путь неверен. Поэтому я просто определил профиль в Мануалы в application.properties файл, как это:

spring.profiles.active=mysql 

или

spring.profiles.active=postgres 

или

spring.profiles.active=mongodb 
15

SPRING_PROFILES_ACTIVE является переменной среды для переопределения/выбрать Spring профиль

 Смежные вопросы

  • Нет связанных вопросов^_^