2011-08-16 2 views
4

私はプラグインベースのアプリケーションを作成しようとしています。これは、基本的なフレームワークの他に、プラグインスタイルで他の機能を追加する必要があることを意味します。プラグインベースのJavaアプリケーションを設計する

このようなシステムの問題は、ランタイムに新しいプラグインをロードする方法だと思います。私は、新しいプラグインがインストールされたときに、プロジェクト全体を再現したくありません。 Eclipseのように、プラグインの新規インストール後、ユーザーはプラグインを再起動するだけで済みます。 私の最初の考えは、Javaリフレクションを使用してクラスをランタイムにロードすることです。いくつかのプラグイン構成ファイルが存在する可能性があります。システムはそれらを読み込み、リフレクションを使用してプラグインクラスをロードします。おそらく私は春のフレームワークも使うことができます。なぜなら、Inversion of Controlは私の要求にちょうど一致するからです。

私が調査している別のアイデアは、ejbコンテナを使用していることです。プラグインがejbsのときは、jarにそれらをパックしてejbコンテナにデプロイすることができます。次にjndiを使用してアクセスできます。プラグインがejbsの場合のみ動作します。

とにかく、私はシステム設計の新人です。だから私はこのトピックを投稿し、あなたの意見を聞きたい。 btw。あなたが推薦したいシステム設計に関する良い本がありますか?

ありがとうございます!

+0

「あなたの意見を聞きたい」という質問は良い質問ではなく、もう少し具体的にしてみてください – Cephalopod

+1

Class.forName() –

答えて

1

まず、OSGIとその実装(Equinox for EclipseとApache Felix)を見てください。しかし、あなたがしようとしていることの詳細を私たちに伝えればもっと簡単になります。

1

プラグインはどのような問題を解決しますか?

フレームワークの設計者は、通常、設計選択を知らせる深いドメイン知識を持っています。フレームワークは、2,3の問題を解決しようとした後、初期の実装では、重要なことをフレームワークに抽象化する方法の手がかりが与えられます。

Eclipseは、拡張可能なIDEの問題を解決します(私の意見では間違いです)。 EJBは、コンテナ内で実行されるトランザクション型の分散コンポーネントです。

あなたは解決したい問題の種類を示していません。あなたがするまで、あなたのアイデアはあまり遠くには及ばないでしょう。

関連する問題