閉じる

Spring Cloud Config

3.0.2

Spring Cloud Config は、分散システムでの外部化された構成のサーバーおよびクライアント側のサポートを提供します。構成サーバーを使用すると、すべての環境にわたってアプリケーションの外部プロパティを管理する中心的な場所が得られます。クライアントとサーバーの両方の概念は、Spring Environment および PropertySource の抽象化と同じようにマップされるため、Spring アプリケーションに非常によく適合しますが、任意の言語で実行される任意のアプリケーションで使用できます。アプリケーションがデプロイパイプラインを介して開発環境からテスト環境および本番環境に移動するときに、これらの環境間の構成を管理し、アプリケーションが移行時に実行する必要があるすべてのものを確実に持つことができます。サーバーストレージバックエンドのデフォルトの実装は git を使用するため、構成環境のラベル付きバージョンを簡単にサポートできるだけでなく、コンテンツを管理するための幅広いツールにアクセスできます。代替の実装を追加し、Spring 構成でプラグインするのは簡単です。

機能

Spring Cloud Config サーバーの機能:

  • HTTP、外部構成用のリソースベースの API (名前と値のペア、または同等の YAML コンテンツ)

  • プロパティ値の暗号化と復号化 (対称または非対称)

  • @EnableConfigServer を使用して Spring Boot アプリケーションに簡単に埋め込み可能

構成クライアント機能(Spring アプリケーションの場合):

  • 構成サーバーにバインドし、リモートプロパティソースを使用して Spring Environment を初期化する

  • プロパティ値の暗号化と復号化 (対称または非対称)

入門

Spring Boot Actuator および Spring Config Client がクラスパス上にある限り、Spring Boot アプリケーションは、spring.cloud.config.uri のデフォルト値である http://localhost:8888 の構成サーバーに接続しようとします。このデフォルトを変更する場合は、bootstrap.[yml | properties] で、またはシステムプロパティまたは環境変数を介して spring.cloud.config.uri を設定できます。

@Configuration
@EnableAutoConfiguration
@RestController
public class Application {

  @Value("${config.name}")
  String name = "World";

  @RequestMapping("/")
  public String home() {
    return "Hello " + name;
  }

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

}

サンプルの config.name の値(または通常の Spring Boot の方法でバインドする他の値)は、ローカル構成またはリモート構成サーバーから取得できます。デフォルトでは、構成サーバーが優先されます。これを見るには、アプリケーションの /env エンドポイントを見て、configServer プロパティソースを参照してください。

独自のサーバーを実行するには、spring-cloud-config-server 依存関係と @EnableConfigServer を使用します。spring.config.name=configserver を設定すると、アプリはポート 8888 で実行され、サンプルリポジトリからデータを提供します。独自のニーズに合わせて構成データを見つけるには spring.cloud.config.server.git.uri が必要です(デフォルトでは git リポジトリの場所であり、ローカル file:.. URL でもかまいません)。

Spring Initializr

プロジェクトのクイックスタート

Spring Initializr (英語) を使用してアプリケーションをブートストラップします。

ドキュメント

Spring プロジェクト別に用意されています。プロジェクトの機能を使用する方法と、それを使用して達成できることを詳細に説明しています。
3.0.2 CURRENT GA リファレンスドキュメント
3.0.3-SNAPSHOT SNAPSHOT リファレンスドキュメント (英語)
2.2.8.BUILD-SNAPSHOT SNAPSHOT リファレンスドキュメント (英語)
2.2.7.RELEASE GA リファレンスドキュメント (英語)