用本地云覆盖远程 spring 云 属性

Override a remote spring cloud property with a local one

我有一个 spring 引导应用程序,它通过 spring 云从远程配置服务器读取属性,它可以很好地处理远程存储库中定义的不同配置文件,我 运行使用以下命令对其进行设置:

java -jar my-app.jar --spring.profiles.active=my-custom-profile

但是,在某些特殊情况下,我希望能够 运行 应用程序同时更改一些远程属性(这些更改不是固定的,所以我无法为它们创建一些自定义配置文件), 所以我试图通过命令行直接覆盖它们:

java -jar my-app.jar --spring.profiles.active=my-custom-profile --my.first.property=value1 --my.second.property=value2

但似乎没有考虑,因为应用程序在启动时仍然采用远程属性。

有什么合适的方法可以实现吗?

由 Spring Cloud Config 定义的远程属性优先于任何其他 属性 来源。如果你想覆盖那些具有本地属性的,你需要明确地允许这个,如 Overriding the Values of Remote Properties:

中所述
spring.cloud.config.allowOverride=true
spring.cloud.config.overrideNone=true