0

と がspring config serverありspring config clientます。クライアントで設定spring.cloud.config.uriしましたが、OS環境を使用するWindowsでhttp://localhost:8888言う他のuriに変更したいと思います。だから私は走ったhttp://example.com:8888setx

setx spring.cloud.config.uri "http://example.com:8888" 

しかし、私が my を実行すると、spring config clientまだ から読み取ろうとしていますlocalhostこのリンクによると、私の設定は私が設定したものによってオーバーライドされるはずですspring.cloud.config.uriが、そうではありませんでした。ここで私が間違っていることを教えてください。bootstrap.ymlOS environment

4

1 に答える 1

1

セット

setx変数を追加しますが、現在のシェルで使用できるようにしません (ここで説明されているように):

setx は値を永続的に変更します。これは将来のすべてのシェルに影響しますが、既に実行されているシェルの環境は変更しません。変更を有効にするには、シェルを終了して再度開く必要がありますが、値は再度変更するまで変更されたままになります。

新しく開いたシェル ウィンドウから実行していることを確認してください。

テスト目的でのみ使用することをお勧めしますset spring.cloud.config.uri=http://example.com:8888

環境変数が存在するかどうかを確認します

mainメソッドの最初の行として次を追加できます。

System.out.println(System.getenv("spring.cloud.config.uri"));
System.out.println(System.getenv("SPRING_CLOUD_CONFIG_URI"));

アンダースコア付きの変数名

Windows はドット付きの環境変数をサポートしているので、問題ありません。これは、他のほとんどすべての OS には当てはまりません。ご存知のように、 Spring はアンダースコア付きの変数名をサポートしています(提供したリンクで説明されているように)。

システム プロパティではなく環境変数を使用する場合、ほとんどのオペレーティング システムはピリオド区切りのキー名を許可しませんが、代わりにアンダースコアを使用できます (たとえば、spring.config.name の代わりに SPRING_CONFIG_NAME)。

于 2016-10-29T00:30:38.880 に答える