概念
1. SPI はサービス プロバイダー インターフェイスです。JDK の組み込みサービス プロバイダー検出メカニズムは、Java によって提供されるサードパーティ実装または拡張 API です。フレームワーク拡張機能とコンポーネントの置換を有効にするために使用されます。
Java SPI の固有の規則
クラスパスの下にある場合、サービス インターフェイスにちなんで名付けられたファイルも、以下の META-INF/services/ ディレクトリに作成されます。クラスパス。このファイルは、このサービス インターフェイスを実装する特定の実装カテゴリです。
外部プログラムがモジュールをアセンブルする場合、jar パッケージ META-INF/services/ 内の構成ファイルを通じて特定の実装カテゴリ名を見つけ、インスタンスをロードしてモジュール インジェクションを完了できます。
2. 呼び出し元は、実際のニーズに応じてフレームワークの実装戦略を有効化、拡張、または置き換えます。
一般的な例:
データベース ドライバーの読み込みインターフェイスは、クラスの読み込みを実装します。
JDBC ロードは、さまざまなタイプのデータベースを駆動します。
Logging ロギング インターフェイス実装クラスの読み込み。
SLF4J は、さまざまなベンダーからのログ実装クラスをロードします。
Spring
SSpring では、SPI が広く使用されています。たとえば、Servlet3.0 仕様では、ServletContainerInitializer、自動型変換 TypeConversionSPI (ConverterSPI、FormatterSPI) などが実装されています。
Java のコレクションは主に 4 つのカテゴリに分類されます:
1. リスト: 順序付け、反復可能;
# 2. キュー: 順序付けされており、繰り返し可能; 3. セット: 繰り返し不可能; 4. マップ: 順序付けされておらず、一意のキーと一意でない値を使用します。以上がJavaのSPIとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。