web-dev-qa-db-ja.com

SpringCloud構成がローカルプロパティを使用してリモートプロパティをオーバーライドする方法

次のプロパティを設定する必要があることはわかっていますが、どこに設定するかについてはまだ混乱しています。

spring:
    cloud:
        config:
            allowOverride: true
            failFast: true
            overrideNone: false

Spring Cloudサーバー側またはクライアント側のapplication.propertiesファイルまたはリモートgitリポジトリ?

サーバー側のapplication.ymlに設定しましたが、動作しません。

リモートgitのapplication.ymlに設定してみましたが、やはり機能しません。助けていただければ幸いです。

11
allenyu5

リモートgitリポジトリで次の構成を設定しました。今回は動作します。

spring:
  cloud:
    config:
      allowOverride: true
      overrideNone: true
      overrideSystemProperties: false
13
allenyu5

Spring Cloudドキュメントの リモートプロパティの値のオーバーライド セクションから:

bootstrapコンテキストによってアプリケーションに追加されるプロパティソースは、多くの場合「リモート」(たとえば、構成サーバーから)であり、デフォルトでは、コマンドラインを除いてローカルでオーバーライドできません。アプリケーションが独自のシステムプロパティまたは構成ファイルでリモートプロパティを上書きできるようにする場合は、リモートプロパティソースにspring.cloud.config.allowOverride=trueを設定してアクセス許可を付与する必要があります(これをローカルに設定することはできません)。

そのフラグが設定されると、システムプロパティとアプリケーションのローカル構成に関連してリモートプロパティの場所を制御するためのより細かい設定がいくつかあります。spring.cloud.config.overrideNone=trueはローカルプロパティソースでオーバーライドし、spring.cloud.config.overrideSystemProperties=falseはシステムプロパティと環境変数のみがリモート設定を上書きする必要がありますが、ローカル設定ファイルは上書きしないでください。

したがって、リモートapplication.yml(リモートgitリポジトリなど)に設定する必要があります。前述のように ここ「アプリは、リモートソースからの構成をオーバーライドできるかどうかを独自に判断することはできません」

3
Nicolau