Spring не принимает переменные окружения

Это не так прямо, но я нашел его очень интуитивным (использование карты для создания новых столбцов из другого столбца) и может быть применено ко многим другим случаям:

gb = df.groupby('A').sum()['values']

def getvalue(x):
    return gb[x]

df['sum'] = df['A'].map(getvalue)
df
0
задан Yathindra Kodithuwakku 11 March 2019 в 13:57
поделиться

4 ответа

В папке ресурсов

Сделайте файл application.yml, application-local.yml, application-dev.yml и т. Д. Все, что вы хотите

и затем в приложении. yml

 spring.profile.active = ${ENV}

теперь во время выполнения укажите переменные ENV из конфигурации run / debug в Intellij или укажите профиль, для которого вы хотите создать jar, в application.yml.

В качестве альтернативы вы можете использовать -D spring.profile.active = dev

0
ответ дан Suneet Srivastava 11 March 2019 в 13:57
поделиться

сначала из документации :

SpringApplication загружает свойства из файлов application.properties в следующих местах и ​​добавляет их в среду Spring:

[ 1117]
  • Подкаталог A / config текущего каталога
  • Текущий каталог
  • Пакет classpath / config
  • Корень classpath
    1. Итак, с пройденной иерархией каталогов вы получите проблемы.

      в секунду, для спецификации файла вы можете использовать Профили . Это работает следующим образом:

      • , если не указано никаких профилей - application.properties будет использоваться
      • для любого дополнительного профиля, также будет использоваться профиль с именем application-<name>.properties
      • [1126 ]

        Таким образом, если вы укажете профили dev и cool, будут использоваться свойства application.properties, application-dev.properties, `application-cool.properties

        ОБНОВЛЕНИЕ: [ 1125]

        Вы можете передать spring.config.location для указания пути к файлу свойств, но если вы хотите, чтобы иерархия каталогов была такой же, как у вас - вам нужны некоторые настройки, используя context.initializers.classes и ApplicationContextInitializer

    0
    ответ дан ZhenyaM 11 March 2019 в 13:57
    поделиться

    В моих проектах я указываю профиль с опцией VM: -Dspring.profiles.active = local

    Затем у меня есть файл с именем application-local.yml

    в производстве: -Dspring.profiles.active = prod, будет использовать файл application-prod.yml

    0
    ответ дан Florian Nicolas 11 March 2019 в 13:57
    поделиться

    Классическим решением является настройка одного конфигурационного файла (я предпочитаю свойства, потому что я в здравом уме) и возможность размещения файла переопределений на каждом установленном хосте.

    Spring поддерживает это "из коробки".

    Вот пример:

    public static void main(final String[] argumentArray)
    {
      final StringApplicationBuilder springApplicationBuilder;
    
      springApplicationBuilder = new SpringApplicationBuilder(YourSpringBootApplication.class)
    
      springApplicationBuilder.properties(
        "spring.config.location=classpath:/yourConfig.properties,/some/path/to/overrides/directory/yourConfig.properties");
    
      springApplicationBuilder.build().run(argumentArray);
    }
    
    0
    ответ дан DwB 11 March 2019 в 13:57
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: