javaweb项目插件实现机制
PHP中文网
PHP中文网 2017-04-17 16:49:40
0
3
536
PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
刘奇

discuz論壇的插件大概原理可以作為參考,說說我所知道的,有沒有用樓主可以自己判斷下

  1. 首先保證插件相關文件都存儲在固定的插件目錄下形成規範,這個可以解決你所提到的插件下載以及存儲、部署等問題,至於插件打包的格式,這個樓主可以慢慢研究,zip, jar,war都可以,只要可以解壓縮到對應的插件目錄即可

  2. 可以針對插件進行一個分類,例如獨立運行的插件、程式擴充插件、腳本等,然後針對性實現插件的機制,例如獨立的運行的插件只要在某些地方進行連結插入即可,如果是程式擴充插件,那麼可能需要統一插件呼叫函數或其他機制

  3. 如果做的完善一些擴展性好一些,還可以要求或讓插件繼承一些你的類,方便插件編寫

試著回答下樓主的1,2,3點問題:

  1. 插件調用有兩種方式,1:預先分佈到系統各個位置一些鉤子運行的程序,指定插件可以在對應的地方調用2:插件安裝好以後修改基礎程序調用鉤子,這個和應用的操作方式有關,如果是開源的可能要實現複雜的插件呼叫邏輯,如果是內部用,可以簡單一些,直接修改程式呼叫插件,這個可以考慮下實際情況

2.插件只能呼叫使用者資訊吧,如果真的讓插件可以修改或考慮安全性,那麼可以考慮開發有一個插件權限審核功能,讓插件開發的時候向系統發起的權限申請,然後系統來進行審核,或系統主動派權限,貌似也和實際情況有關

3.系統升級插件不相容的部分提示修改,插件升級的話直接更新下載覆蓋插件目錄

阿神

Java透過URLClassLoader讓程式支援外掛程式擴充:
http://xxgblog.com/2013/07/04/java-urlclassloader-plugin/

這是我很久以前寫的一篇博客,透過定義插件介面加上反射載入插件jar包,實現和你所描述的需求非常相似,不知道能不能幫到你。

洪涛

JAVA WEB外掛開發一般使用OSGi技術,這方面JXADF開源、免費,做得相當優秀,詳細參考:http://osgia.com

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!