【问题标题】:Override Spring Boot Configurations Not Working [duplicate]覆盖 Spring Boot 配置不起作用 [重复]
【发布时间】:2021-06-05 03:50:36
【问题描述】:

我正在尝试将所有敏感数据(例如机密和密码)从本地应用程序属性文件移动到 AWS Secrets Manager。该应用程序基于 Spring Boot。 该计划是在应用程序启动之前从 AWS 检索所有机密,然后覆盖当前值。 问题是,application.properties 中的属性不会被覆盖。 我尝试将值放入 system.configuration 或添加新属性,一切正常。但是,当您尝试获得这样的价值时:

        String b = environment.getProperty("test.key");

或者这个:

        <property name="userName" value="${test.username}"/>

它仍然直接从应用程序文件中获取值。

尝试了post中提到的所有方法,仍然没有运气。所有这些都只是将值添加到新的属性源,而不是覆盖从 application.properties 文件加载的环境值。 有什么想法吗?这真的很难。

【问题讨论】:

    标签: spring spring-boot configuration


    【解决方案1】:

    post 中找到了答案。感谢@Lukas Hinsch。 只需通过ApplicationEnvironmentPreparedEvent 将新的属性源添加到应用程序环境即可。第一次对我不起作用的原因是ApplicationEnvironmentPreparedEvent由于我添加application.addListeners();的方式没有执行,而是您应该将其添加为new SpringApplicationBuilder(Application.class).listeners(new Applicationpdater()).run(args);

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 2017-10-08
      • 1970-01-01
      相关资源
      最近更新 更多