Apache Commons Configuration set 属性 to environment variable - 怎么样?

Apache Commons Configuration set property to environment variable - how?

我的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 class 中,它被初始化为 "S3_NAME"。

为什么?我做错了什么?

编辑:我忘了补充一点,我在 docker 容器中启动应用程序,传递 -e S3_NAME=some_bucket_name 以及我的 docker 运行命令

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

我不知道为什么这两个文件在 Spring Boot 中的运行方式不同。