1

次の問題に直面しています。Spring を使用して OSGi バンドルを開発しています。このバンドルを使用する開発者が、フラグメントを介して Spring コンテキスト ファイルを追加できるようにしたいと考えています。

これらのファイルは、Spring Bean を構成するために使用されます (Spring を使用しない同様の既存の例: org.apache.log4jのフラグメント内の構成ファイル)。

この質問の範囲外のいくつかの理由でSpringフレームワークを使用する必要がありますが、次のディレクティブは使用できません

<import resource="..."/>

一部のフラグメントが実行時に利用可能になるかどうかさえわからないため (オプションの構成です)、Spring がリソースを見つけることができない場合に文句を言うことを知っています。理想的には、次のようなものが欲しいです。

<import resource="my_default_configuration.xml"/>
<import resource="my_extended_configuration.xml"
        doesNotComplainIfAbsent="true"
        override="true"/>

私を助けるアイデアはありますか?

前もって感謝します。

4

1 に答える 1

1

OSGiを適切に使用することは、それを行うためのより良い方法だと思います. Spring DM (別名 Gemini Blueprint) を使用すると、OSGi を介して Spring Bean をインポートおよびエクスポートできます。そのため、バンドルは、バンドルを使用する開発者が独自のバンドルからエクスポートする特定のインターフェースに一致するすべての Bean をインポートしようとする可能性があります。開発者が何も提供しないことを選択した場合、バンドルに空のリストが作成されるため、これは依然としてオプションです。

于 2012-07-27T19:45:39.843 に答える