最新の安定バージョンについては、Spring Cloud Config 4.3.0 を使用してください!

すべてのアプリケーションと構成を共有する

次のトピックで説明するように、すべてのアプリケーション間で構成を共有することは、採用するアプローチによって異なります。

ファイルベースのリポジトリ

ファイルベース(git、svn、native)リポジトリでは、application* (application.propertiesapplication.ymlapplication-*.properties など)のファイル名を持つリソースがすべてのクライアントアプリケーション間で共有されます。これらのファイル名のリソースを使用してグローバルデフォルトを構成し、必要に応じてアプリケーション固有のファイルでオーバーライドすることができます。

プロパティオーバーライド機能は、グローバルデフォルトの設定にも使用でき、プレースホルダーアプリケーションでローカルにオーバーライドできます。

「ネイティブ」プロファイル(ローカルファイルシステムバックエンド)では、サーバー自体の構成の一部ではない明示的な検索場所を使用する必要があります。それ以外の場合、デフォルトの検索場所にある application* リソースは、サーバーの一部であるため削除されます。

Vault サーバー

Vault をバックエンドとして使用する場合、構成を secret/application に配置することにより、すべてのアプリケーションと構成を共有できます。例: 次の Vault コマンドを実行すると、構成サーバーを使用するすべてのアプリケーションで、プロパティ foo および baz を使用できるようになります。

$ vault write secret/application foo=bar baz=bam

CredHub サーバー

CredHub をバックエンドとして使用する場合、構成を /application/ に配置するか、アプリケーションの default プロファイルに配置することにより、すべてのアプリケーションと構成を共有できます。例: 次の CredHub コマンドを実行すると、構成サーバーを使用するすべてのアプリケーションで、プロパティ shared.color1 および shared.color2 を使用できるようになります。

credhub set --name "/application/profile/master/shared" --type=json
value: {"shared.color1": "blue", "shared.color": "red"}
credhub set --name "/my-app/default/master/more-shared" --type=json
value: {"shared.word1": "hello", "shared.word2": "world"}

JDBC 環境リポジトリ

JDBC バックエンドを使用して構成を共有するには、すべてのクライアント間で共有することを意図したエントリのアプリケーション列の値として 'application' を含むレコードをデータベースに挿入します。その後、アプリケーション固有のプロパティでこれらの共有構成をオーバーライドできるため、アプリケーション環境に対する柔軟性と制御が実現します。

INSERT INTO PROPERTIES (APPLICATION, PROFILE, LABEL, KEY, VALUE)
VALUES ('application', 'default', 'master', 'a.b.c', 'shared-value');
INSERT INTO PROPERTIES (APPLICATION, PROFILE, LABEL, KEY, VALUE)
VALUES ('myapp', 'prod', 'master', 'd.e.f', 'specific-value');

JDBC リポジトリを使用したセットアップおよび構成管理の詳細な例については、JdbcEnvironmentRepository 実装および関連テストを参照してください。