7

Web 用の大きな Red5 Java アプリケーションを作成しています。Red5 は、Java ベースであり、Spring フレームワークで記述された Flash Media Server の代替品です。

アプリケーションの多くのバージョンをオンラインにして、それぞれ異なる動作と異なるクラスを有効または無効にしたいと考えています。

メイン アプリケーションからモジュール/機能を削除/追加できるように、コードをモジュール ベースのコードに変換する方法を探しています。

OSGI http://www.springsource.org/osgiについては知っていますが、SpringSource dm サーバーが必要であり、red5 でどのように連携するのかわかりません。完全に理解するのは非常に複雑です。

私は一般的にSpringフレームワークについて十分な知識を持っていません.db関連で作業しています.それだけです. red5 はそれをより広範囲に使用します。

誰でもこの情報から意味を理解できますか?コードをモジュールに分割するためにできることはありますか?

この問題に関する情報をいただければ幸いです。

4

1 に答える 1

4

この種の状況に対処するための私の好ましい方法は、ディペンデンシーインジェクション(DI)です。SpringにはDI機能が組み込まれているため、チュートリアルはオンラインで簡単に見つけることができます。ただし、SpringのDIは、多くの理由から、Guiceが提供するDIほど良くありません。これは、私が強くお勧めします。(私の意見では、SpringのDIに対するGuiceの主な利点は、型の安全性です。)

DIは基本的に、実行時にクラス実装を置き換えるためのメカニズムです。依存関係をクラスにハードコーディングするのではなく(たとえば、クラスに他のクラスを直接構築させることによって)、コンストラクターで依存クラスを渡すようにコーディングします。DIフレームワークは、構成に従って実行時に正しいインスタンスを渡します。Springの設定はアノテーションまたはXMLファイルを介して行うことができます。Guiceはのサブクラスを使用しますcom.google.inject.AbstractModule

したがって、アプリケーションのインスタンスごとに異なる構成ファイルを使用して、アクティブ化のためのさまざまな機能セット、または実際には同じ機能のさまざまな実装を提供することができます。この手法を使用するようにアプリケーションを設定する場合、インスタンス間で異なる必要があるのは、単一の構成ファイルだけです。

于 2012-07-30T16:11:01.490 に答える