プロパティの上書き
構成サーバーには、オペレーターがすべてのアプリケーションに構成プロパティを提供できるようにする「オーバーライド」機能があります。オーバーライドされたプロパティは、通常の Spring Boot フックを使用するアプリケーションによって誤って変更されることはありません。オーバーライドを宣言するには、次の例に示すように、名前と値のペアのマップを spring.cloud.config.server.overrides に追加します。
spring:
cloud:
config:
server:
overrides:
foo: bar 上記の例では、構成クライアントであるすべてのアプリケーションが、独自の構成に関係なく foo=bar を読み取ります。
| 構成システムは、アプリケーションに特定の方法で構成データを使用させることはできません。オーバーライドは強制できません。ただし、Spring Cloud Config クライアントに役立つデフォルトの動作を提供します。 |
通常、${} を使用する Spring 環境プレースホルダーは、円記号(\)を使用して $ または { をエスケープすることにより、エスケープ(およびクライアントで解決)できます。例: アプリが独自の app.foo を提供しない限り、\${app.foo:bar} は bar に解決されます。 |
| YAML では、円記号自体をエスケープする必要はありません。ただし、プロパティファイルでは、サーバーでオーバーライドを構成するときに円記号をエスケープする必要があります。 |
リモートリポジトリで spring.cloud.config.overrideNone=true フラグ(デフォルトは false)を設定することにより、クライアントのすべてのオーバーライドの優先度をデフォルト値のように変更して、アプリケーションが環境変数またはシステムプロパティに独自の値を提供できるようにすることができます。