2016-06-08 2 views
12

Я хочу, чтобы мой активный профиль по умолчанию был production, если -Dspring.profiles.active не установлен.Настройка активного профиля по умолчанию в Spring-boot

Я попытался следующие в моей application.properties но did't работы:

spring.profiles.default=production 

Spring-версии загрузчика = 1.3.5.RELEASE

+0

На самом деле, ваша ошибка была именно то, что я искал. – cristianoms

ответ

27

Что вы делаете здесь настройки по умолчанию по умолчанию в Профиль (профиль, который используется для любого компонента, если вы не указали аннотацию @Profile), чтобы быть production.

Что вам действительно нужно сделать, это установить по умолчанию активного профиля, который делается так:

spring.profiles.active=production 
+4

Это сработало и аргумент '-Dspring.profiles.active = development' переопределяет его, что я и хотел – DarVar

3

Если вы используете Maven я хотел бы сделать что-то вроде этого:

Быть производство ваш профиль по умолчанию:

<properties> 
    <activeProfile>production</activeProfile> 
</properties> 

И как пример О.Т. ее профили:

<profiles> 
    <!--Your default profile... selected if none specified--> 
    <profile> 
     <id>production</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <activeProfile>production</activeProfile> 
     </properties> 
    </profile> 

    <!--Profile 2--> 
    <profile> 
     <id>development</id> 
     <properties> 
      <activeProfile>development</activeProfile> 
     </properties> 
    </profile> 

    <!--Profile 3--> 
    <profile> 
     <id>otherprofile</id> 
     <properties> 
      <activeProfile>otherprofile</activeProfile> 
     </properties> 
    </profile> 
<profiles> 

В ваших application.properties вы должны установить:

[email protected]@ 

Это работает для меня каждый раз, надеюсь, что это решит вашу проблему.

+1

Примечание - использовать использование профиля' maven package -P {profilename} '- например. 'maven package -Pproduction' для производственного профиля. – Artegon

2

Put это в App.java:

public static void main(String[] args) throws UnknownHostException { 
    SpringApplication app = new SpringApplication(App.class); 
    SimpleCommandLinePropertySource source = new SimpleCommandLinePropertySource(args); 
    if (!source.containsProperty("spring.profiles.active") && 
      !System.getenv().containsKey("SPRING_PROFILES_ACTIVE")) { 

     app.setAdditionalProfiles("production"); 
    } 
    ... 
} 

Это, как это делается в JHipster

+0

Работает для настройки профиля в aws лямбда программно. Благодаря! –

6

я сделать это таким образом

System.setProperty("spring.profiles.default", "dev"); 

в самом начале main(...)

3

добавить --spring.profiles.active=production

Пример:

java -jar file.jar --spring.profiles.active=production 
Смежные вопросы