5

@ComponentSpring (またはその仕様の1@Repositoryつなど)をOSGiサービスとして自動的に登録することは可能ですか?それで、1つのバンドルとOSGi Service Registry内で自動配線とSpringの他のすべての利点を使用して、バンドル間で通信できますか?

更新:この議論から、Eclipse Geminiでのみ、標準のブループリントを使用することは不可能であるように思われます。

4

3 に答える 3

5

Eclipse Geminiブループリント(以前のSpring Dynamic Modules、以前のSpring OSGi)に精通していると思いますか?

<service>-tagを使用してBeanをエクスポートします。@Componentただし、注釈付きのBeanなどをすべて自動的にエクスポートできるかどうかはわかりません。

于 2012-04-13T09:50:49.570 に答える
1

@AlexeyRomanovが提案したハックなしでこれをサポートするための可能な実装はBeanFactoryPostProcessor、フラグメントを介してGeminiBlueprintのエクステンダーバンドルに実装を追加することです。

そのプロセッサは、BeanFactory内に必要なOSGiエクスポート定義を作成でき、正しく機能するはずです。

これがどのように見えるかの例は、アノテーションServiceReferenceInjectionBeanPostProcessorを介してOSGi-Servicesを注入できるようにするSpringDM/Geminiの拡張機能です。@ServiceReference(Spring DMをリンクしましたが、このクラスはまだGeminiに存在するはずですが、javadocへの直接リンクが見つかりませんでした)

于 2012-04-16T11:41:20.003 に答える
0

厄介な回避策、シングルトンBeanの場合のみ:インスタンスをコンストラクターの静的フィールドに格納し、このフィールドのゲッターをBlueprint/iPOJOファクトリメソッドとして使用します。

于 2012-04-13T10:45:19.380 に答える