Spring boot 使用云配置服务器时的Spring引导外部配置顺序?

Spring boot 使用云配置服务器时的Spring引导外部配置顺序?,spring-boot,spring-cloud,spring-cloud-config,Spring Boot,Spring Cloud,Spring Cloud Config,我开始使用SpringCloudConfig,并希望为客户端提供一种方法来覆盖来自cofnig服务器的属性。然而,阅读之后,云配置何时应用并不明显 我也读过,它谈到了覆盖。但它们似乎与我想要的相反(这些覆盖用于覆盖客户端提供的属性) 那么,云配置在订单中的位置如何?我是否仍然能够在类路径上提供一个本地应用程序.properties文件来覆盖某些云配置属性?git提交/推送过程是该过程的一部分,实际上……Spring云配置使用git来处理配置文件、更改、审核等,因为git非常适合这样做,&Conf

我开始使用SpringCloudConfig,并希望为客户端提供一种方法来覆盖来自cofnig服务器的属性。然而,阅读之后,云配置何时应用并不明显

我也读过,它谈到了覆盖。但它们似乎与我想要的相反(这些覆盖用于覆盖客户端提供的属性)


那么,云配置在订单中的位置如何?我是否仍然能够在类路径上提供一个本地
应用程序.properties
文件来覆盖某些云配置属性?

git提交/推送过程是该过程的一部分,实际上……Spring云配置使用git来处理配置文件、更改、审核等,因为git非常适合这样做,&Config利用了这些优势

如果您只是在寻找加快配置更改测试的方法,并且愿意接受折衷方案,那么您可以使用本地(或本地网络)repo对配置存储库进行测试。我意识到这不是您具体要求的,但是如果您使用Config server应用程序的application.properties指向底层git repo,那么这是一个可能会有所帮助的选项。如果是这样,您可以在命令行上覆盖spring.cloud.config.server.git.uri,如下所示:

java-Dspring.cloud.config.server.git.uri=${HOME}/testing/config repo-jar your_jar_here.jar

这将允许您调整客户端应用程序/服务的配置设置,这些应用程序/服务从配置服务器获取其设置,而不会影响生产配置文件(甚至分支)

我希望这有帮助。如果没有,或者如果我误解了您的目标或限制,请澄清(一两个用例可能会帮助我更好地进行三角划分,如果您可以分享它们),我将再次尝试:

干杯,
标记

配置服务器应用于最顶层。如果希望应用程序覆盖某些内容,为什么不在config server中提供特定于应用程序的配置?我对您的用例有点困惑。请看一下
/env
执行器端点。它将显示应用程序中使用的属性源,以及它们相互替代的顺序(前面列出的源替代后面列出的源)。一般来说,ConfigServer源代码非常早,仅在默认顺序中位于命令行-D属性之后。在测试应用程序时,通过git分支、推送和查看配置更改过程的开销太大。测试人员更喜欢一种无需经过git流程即可进行本地更改的方法。您确定Spring Boot Actuator中的
/env
是按配置顺序订购的吗?在我看来,它只是按字母顺序排列的。在我的示例中,
defaultProperties
显示在
configService
之后,这是一个不正确的排序。@AndyShinn:您有什么东西可以对它们重新排序吗?当我到达端点时,我看到它们按以下顺序列出1。概况2。配置服务:3。servletContextInitParams 4。系统属性5。系统环境6。applicationConfig:classpath:/application.properties 7。事实上,这是有帮助的,也是我没有考虑的。进一步说,我似乎可以使用模式匹配来匹配
staging*
dev*
配置文件,并将这些请求发送到另一个git存储库,测试人员可以对其进行特殊更改,而无需经过正常的git过程。我会尝试一下,如果这个结果对我的用例有效,我会接受这个答案。我会接受这个答案,并添加我想要的信息:我正在使用Spring配置文件将Spring云配置git URI切换到另一个基本为空的测试repo。由于git repo对于这个概要文件是空的,它允许我仍然重写文件或环境变量中的属性(因为它们是唯一存在的属性)。足智多谋!做得很好,很高兴你又回来了。祝你好运,安迪!