我正在尝试将所有敏感数据(如机密和密码)从本地应用程序属性文件移动到aws机密管理器。该应用程序基于springboot。计划是在应用程序启动之前从aws检索所有机密,然后覆盖当前值。问题是,application.properties中的属性不会被重写。我试着把值放到system.configuration或者添加一个新的属性,一切都成功了。但是,当您试图获得这样的价值时:
String b = environment.getProperty("test.key");
或者这个:
<property name="userName" value="${test.username}"/>
它仍然直接从应用程序文件中获取值。
尝试了这篇文章中提到的所有方法,仍然没有运气。它们都只是将值添加到一个新的属性源中,而不是重写从中加载的环境值 application.properties
文件夹。有什么想法吗?这真的很难。
1条答案
按热度按时间vwkv1x7d1#
在这个帖子里找到了答案。感谢@lukas hinsch。只需通过
ApplicationEnvironmentPreparedEvent
就行了。第一次对我不起作用的原因是ApplicationEnvironmentPreparedEvent
由于我添加的方式,没有执行application.addListeners();
相反,您应该将其添加为new SpringApplicationBuilder(Application.class).listeners(new Applicationpdater()).run(args);