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 中的运行方式不同。
我的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 中的运行方式不同。