Apache Commons Configuration将属性设置为环境变量-怎么样?

时间:2019-01-29 21:02:42

标签: java spring-boot apache-commons-config

我的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 run命令传递

1 个答案:

答案 0 :(得分:0)

原来我们没有使用(或正确)使用正确的工具-正确的方法是将环境变量属性从bootstrap.properties移到application.properties-然后它开始工作!

我不知道为什么这两个文件在Spring Boot中的工作方式有所不同。