首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用占位符将系统环境变量注入Spring Annotation

使用占位符将系统环境变量注入Spring Annotation
EN

Stack Overflow用户
提问于 2020-08-25 19:56:59
回答 2查看 122关注 0票数 0

我知道您可以使用@Value注解注入环境变量,如下所示

代码语言:javascript
复制
    @Value("#{systemEnvironment['AWS_ENV']}")
    private String envTarget;

但是,如果我使用的是Spring注解,我可以将环境变量内联注入字符串值吗?例如,如下所示:

代码语言:javascript
复制
@PropertySource("classpath:secrets-${#{systemEnvironment['AWS_ENV']}.properties")

显然,上面的方法不起作用,因为它试图将systemEnvironment['AWS_ENV']解析为jvm属性。有谁有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-25 20:10:06

可以将占位符移动到单个aws.properties文件中:

代码语言:javascript
复制
aws.properties 
envTarget = ${AWS_ENV}

然后:

代码语言:javascript
复制
@PropertySource("classpath:aws.properties")

对于本地开发,可以将占位符作为JVM参数添加到运行配置中,但这可能会成为一种难以管理的问题。另一种方法是使用aws-local.properties (位于相同的资源文件夹中),但此文件位于.gitignore中,因此永远不会提交机密。然后有一个单独的JVM参数来使用本地profile

票数 0
EN

Stack Overflow用户

发布于 2020-08-27 23:20:22

虽然被接受的答案确实部分解决了我的问题,但我最终只是手动配置了属性,而没有使用PropertySource注释。这使我能够更好地控制bean生命周期和要加载的属性文件。

Spring Environment Property Source Configuration

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63578349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档