1

これは、felix SCR アノテーションのドキュメントを定義します。 http://felix.apache.org/site/scr-annotations.html#SCRAnnotations-Reference

@Reference アノテーションを使用し、ターゲット サービスを構成パラメータとして設定したい。

ドキュメントには次のように記載されています: 利用可能にする特定のサービスを選択するためのサービス ターゲット フィルター。この値の値を構成プロパティで上書きできるようにするには、このパラメーターを宣言する必要があります。パラメータが宣言されていない場合、それぞれの宣言属性は生成されません

このパラメータの宣言方法。

4

1 に答える 1

1

少し遅れましたが、どこにも簡単な例が見つからなかったので、これはとにかく他の誰かを助けるかもしれません.

たとえば、Felix アノテーションを使用して DataSource をフィルタリングするには、次のようにします。

@Reference(cardinality = OPTIONAL_UNARY, policy = DYNAMIC, name = "dataSource")
private DataSource dataSource;

次の XML を生成します。

<reference name="dataSource" interface="javax.sql.DataSource" cardinality="0..1" policy="dynamic" bind="bindDataSource" unbind="unbindDataSource"/>

OSGi 4.2 Compendium Specのセクション 112.6 に従って、プロパティに.targetを追加する必要があります。

したがって、私の構成では、LDAP フィルターを次のように設定しました。

dataSource.target = (some.key=some.value)

注: 私は un/bind メソッドを使用しておらず、DS にそれらを生成させています。

于 2012-10-18T11:16:15.993 に答える