我的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命令传递
答案 0 :(得分:0)
原来我们没有使用(或正确)使用正确的工具-正确的方法是将环境变量属性从bootstrap.properties
移到application.properties
-然后它开始工作!
我不知道为什么这两个文件在Spring Boot中的工作方式有所不同。