Apache Commons Configuration устанавливает свойство переменной среды - как? - PullRequest
0 голосов
/ 30 января 2019

Мой проект SpringBoot имеет зависимость

            <dependency>
              <groupId>org.apache.commons</groupId>
              <artifactId>commons-configuration2</artifactId>
              <version>2.4</version>
            </dependency>

А в моем файле bootstrap.properties есть такие строки, как aws.s3.name=${env:S3_NAME}

Согласно документации на https://commons.apache.org/proper/commons-configuration/userguide/howto_basicfeatures.html, предполагаетсядля работы с этим синтаксисом.

Однако, когда я пытаюсь использовать его:

    @Value("${aws.s3.name}")
    private String bucketName;

внутри моего класса @Service, он инициализируется как "S3_NAME".

Почему?Что я делаю не так?

РЕДАКТИРОВАТЬ: я забыл добавить, что я запускаю приложение в Docker-контейнере, передавая -e S3_NAME = some_bucket_name вместе с моей командой запуска Docker

1 Ответ

0 голосов
/ 06 февраля 2019

Оказалось, что мы не использовали правильный инструмент (или правильно) - правильный путь - переместить свойства переменных среды с bootstrap.properties на application.properties - и тогда он начал работать!

Я незнать, почему существуют различия в том, как эти два файла работают в Spring Boot.

...