1

私はOSGiでプロジェクトを開始しており、サービス登録などを処理する方法を定義する際に非常に重要な選択に直面しています...

私が間違っていない場合、私には3つの選択肢があります。

  • サービスリスナーを実装し、自分のレジスタを処理することにより、手動ソリューションを使用します(実際には最悪の選択ではないかもしれません)
  • 宣言型サービスのパラダイムを使用する:良さそうに見えますが、現在は少し非推奨になっていると感じています。私は正しいですか?
  • Spring DMパラダイムを使用する:これは最新のパラダイムのようですが、まだ十分に標準化されているかどうかはわかりません。それを実行するために特別なOSGi実装が必要ですか(Virgo / SpringDMサーバーなど)、またはプラグインが含まれるとすぐにクラシックOSGiプラットフォームを使用できますorg.springframework.*か?

私の尋問について何かコメントや情報はありますか?あなたは好ましい選択をしましたか(そしてその理由は?)、それとも私のリストに含まれていない他の解決策を使用しますか?

よろしくお願いします。

4

2 に答える 2

2

宣言型サービス (DS) は非推奨ではありません。実際、OSGi でサービスのバインド/バインド解除を処理する最もクリーンな方法です。手動で行うこともできますが、ユースケースによってはこれの方が良い場合もありますが、一般的には DS が適しています。SpringDM はその下で Equinox を使用しますが、特定のものをより弾力的にするためにラップしています。SpringDM を試したことがないので、あまりコメントできません。

将来 Spring の使用/統合を計画している場合は、SpringDM から始めてください。それ以外の場合は、DS から始めます。DS で処理できないことを行う必要がある場合は、サービス トラッカーを使用して手動で行うことができます。DS と手動サービス処理を混在させることは許容されます。

過去 2 年間に DS の代替として提案された「ブループリント」と呼ばれる 4 番目のオプションがあると思います。彼らがどこにたどり着いたのかはわかりませんが、SpringDM がこれを内部で使用している可能性があると思います。

于 2011-07-12T12:46:47.997 に答える
1

@omerkudat のアドバイスに加えて、DS よりも高度なiPOJOを見ることもできますが、これは公式仕様の一部ではありません。

于 2011-07-12T14:24:43.993 に答える