OSGiの詳細OSGiサービスと宣言型サービスによる依存性注入OSGiサービスと宣言型サービスによる依存性注入ご覧のページは、お客様の利便性のために一部機械翻訳されています。ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。サービスとして登録します。各サービスは機能を提供し、他のサービスが提供する機能を活用できます。OSGiサービスモデルは、オブジェクトのコラボレーション環境をサポートします。宣言型サービス(DS)は、OSGiサービスの上にサービスコンポーネントモデルを提供します。アノテーションが付けられ、サービスクラスを実装または拡張します。サービスコンポーネントは、互いのサービスを参照して使用できます。Runtime(SCR)は、コンポーネントサービスを登録し、それらを参照する他のコンポーネントへのバインドを処理します。「魔法」の仕組みは次のとおりです。サービスコンポーネントを含むモジュールをインストールすると、SCRはコンポーネントを指定されたサービスタイプに関連付けてサービスレジストリに保存するコンポーネント構成を作成します。サービスコンポーネントが別のサービスタイプを参照するモジュールをインストールすると、SCRはサービスタイプに一致するコンポーネント構成をレジストリで検索し、一致を見つけると、そのサービスのインスタンスを参照コンポーネントにバインドします。いいえ、それよりもはるかに簡単です。`@Reference``つの注釈を使用します。@Component`:このアノテーションをクラス定義に追加して、クラスをコンポーネント(サービスプロバイダー)にします。@Reference:この注釈をフィールドに追加して、フィールドのタイプに一致するサービスを注入します。アノテーションは、クラスをOSGiコンポーネントにします。プロパティを注釈内の特定のサービスタイプに設定すると、指定したサービスタイプによって他のコンポーネントがサービスコンポーネントを参照できます。SomeApi.classサービスコンポーネントです。SomeApi関連付けるコンポーネント構成を作成します。サービス参照の指定も簡単です。注釈をフィールドに適用すると、フィールドのタイプに一致するサービスが挿入されるようにマークされます。コンポーネント構成を検出し、この参照コンポーネントクラスにサービスをバインドします。注釈は、次のクラスでのみ使用できます。@Component注釈が付けられています。宣言型サービスコンポーネントのみができます。使用して、OSGiサービスにバインドします。ファイルを自動的に作成します。このファイルは、コンポーネントのサービス、依存関係、およびアクティベーション特性を指定します。モジュールのデプロイ時に、OSGiフレームワークはコンポーネントの説明を読み取り、コンポーネントを作成し、他のコンポーネントへの依存関係を管理します。SCRは、サービスコンポーネントを互いにペアリングする準備ができています。参照元のコンポーネントごとに、SCRはターゲットサービスのインスタンスをそのコンポーネントにバインドします。Springでの依存性注入の改善として、OSGi宣言サービスは動的な依存性注入をサポートします。他のクラスが使用するサービスコンポーネントを作成および公開できます。コンポーネントを更新し、サービスの代替コンポーネント実装を公開することもできます。DXPの強力な部分です。