私のサービスではspring cloud config server春クラウド構成サーバーの優先順位
で作業するとき、私は私が地元の性質がこのコンテンツ
foo:
bar: "some"
buz: "some"
joe: "some"
でapplication.yml
ファイルの環境変数の優先順位について質問がありますしていますサービスは、ファイルtestservice-api.yml
(testservice-api
はサービスのバリュー・アプリケーション名)を含む構成リポジトリーを持つ構成サーバーにも接続されています。このファイルの内容は次のとおりです。
foo:
bar: "some-specific"
したがって、このセットアップを実行時の設定は、このことになる:
{
"foo.bar": "some-specific",
"foo.buz": "some",
"foo.joe": "some"
}
今、私は環境変数でfoo.bar
とfoo.joe
を上書きしてみてください。
だから私は、このコマンドを使用してサービスを開始します。
FOO_BAR=some-env FOO_JOE=some-env gradle bootRun
私は環境変数が設定ファイルよりも優先されなければならないthis part of the spring boot documentationで読んだから - また、春の雲の設定のドキュメントがかなった別の状態はありません - 私は結果があることを期待する:
{
"foo.bar": "some-env",
"foo.buz": "some",
"foo.joe": "some-env"
}
しかし、その代わりに、私は得る:
{
"foo.bar": "some-specific",
"foo.buz": "some",
"foo.joe": "some-env"
}
jar内のローカル設定ファイルの設定だけが環境変数によって上書きされます - config repoのプロパティは環境変数よりも優先されているようです。
これは説明できますか?これはバグですか?この中のヒント?
ここではサンプルコードを見つけてください:
https://github.com/mduesterhoeft/configserver-test
設定サーバが最も優先度が高くなります。 – spencergibb
@spencergibbヒントのおかげで - それはどこかに書かれていますか?私が見つけたのは、 "これは、スタンドアロンのSpring Bootアプリケーションに適用されるのと同じルールです。" - 私はこれらのルールが適用されると思ったので - https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config –
もしそうでないならば、それは春の雲の文書になります。 – spencergibb