2011-08-16 63 views
4

我試圖做一個基於插件的應用程序,這意味着,除了基本框架,其他功能應添加插件風格。設計一個基於Java應用程序的插件

我認爲這樣的系統的majar問題是如何在運行時加載新的插件。我不想在安裝新插件時重新編譯整個項目。就像Eclipse一樣,在新安裝插件之後,用戶只需要重新啓動它。 所以我的第一個想法是使用java反射來在運行時加載類。可能會有一些插件配置文件,系統會讀取它們並通過反射來加載插件類。也許我也可以使用spring框架,因爲它的Inversion of Control符合我的要求。

我正在調查的另一個想法是使用ejb容器。當插件是ejbs時,我可以將它們打包成jar並將它們部署到ejb容器中,然後我可以使用jndi來訪問它們。但它只在插件是ejbs時才起作用。無論如何,我是一個系統設計的菜鳥。所以我張貼這個話題,並希望聽到你的意見。 btw。有沒有關於你想推薦的系統設計的好書?

非常感謝!

+0

「我想聽聽你的意見」不是一個好問題,試着做一個更具體的問題 – Cephalopod

+1

看看Class.forName() –

回答

1

您可以先看看OSGI及其實現(Equinox for Eclipse和Apache Felix),但如果您向我們提供有關您正在嘗試執行的操作的更多信息,則會更容易。

1

插件解決什麼問題?

框架設計師通常具有深刻的領域知識,通知他們的設計選擇。兩三次嘗試解決某個問題後,框架就會出現;早期的實現提供了關於如何將重要內容抽象爲框架的線索。

Eclipse解決了可擴展IDE的問題(在我看來,效果很差)。 EJB是在容器中運行的事務性分佈式組件。

你沒有給出你想要解決什麼樣的問題。直到你這樣做,你的想法不會變得很遙遠。