13

私は最近、OSGi の Declarative Services がコンポーネントの構成を必須に設定できるという事実に出くわしました。これにより、コンポーネントはアクティブ化時にコンポーネントを受け取り、コンポーネントのアクティブ化と構成の間のギャップがなくなります。これにより、-メソッドを介して構成の更新を受信できることにも気付きましたmodified

ManagedServiceこの機能は、インターフェイスを実装し、提供する「サービス」の 1 つとして公開することによって提供される機能と非常によく似ているように思えます。

ManagedServiceDS構成インジェクションを完全に無視して使用できるようです。

これらの手法のいずれかが他の手法よりも優先されますか、それとも私が見ていない他のトレードオフがありますか?

4

2 に答える 2

14

はい、 Declarative Services コンポーネントを完全に無視ManagedServiceして使用することができます。ManagedServiceFactoryはい、私はこのアプローチをお勧めします。

これをさまざまなレベルの抽象化と考えてください。MS/MSF は構成管理用の低レベル API であり、DS バンドルが実行されていない場合でも使用できます。これの利点は、DS に依存せずに構成可能なサービスを記述できることです。これは、特定の「システム レベル」コンポーネントにとって望ましい場合があります。

ただし、「アプリケーション レベル」のコンポーネントなど、DS に依存することに満足している場合は、DS の組み込みの構成管理機能との統合を使用すると、作業が大幅に楽になります。

于 2010-11-09T00:38:45.553 に答える
0

宣言型サービス ファクトリを構築するいくつかの例 :

1)構成管理者経由 : ニンジン-osgi-scr-factory-cm

2)コンポーネント ファクトリ経由 : ニンジン-osgi-scr-factory-ds

ユースケースのテストを見てください。

于 2012-09-06T00:03:04.267 に答える