0

Apache Felix の SCR を使用すると、インスタンス化され、依存関係に接続され、OSGi サービスとして登録されるコンポーネントを (注釈または XML を介して) 宣言できます。

サービス登録の部分をスキップして、SCR にコンポーネントを作成させることもできます ( @scr.component を指定し、 @ scr.serviceを省略します)。これは (バンドル内の) 依存性注入だけに役立つかもしれないと考えていましたが、コンポーネントをどのように消費するのでしょうか? サービスはscr.referenceを使用して注入できますが、これは非サービスでは機能しません (または機能します)?

SCR API に直接アクセスすることはできますが、コンテナー サービスと直接対話することは、DI の目的を無効にします。

4

1 に答える 1

2

OSGIサービスを注入することしかできないと思います。依存性注入を使用したい場合は、google Guice を確認してください。残念ながら、OSGI コンテナー内ですぐに使用できるかどうかはわかりません。

SCR コンポーネントについてですが、あるコンポーネントが別のコンポーネントで使いたい機能を提供しているのであれば、サービスを使って公開するべきだと思います。

于 2009-01-19T14:24:50.420 に答える