84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
认证高级PHP讲师
discuz論壇的插件大概原理可以作為參考,說說我所知道的,有沒有用樓主可以自己判斷下
首先保證插件相關文件都存儲在固定的插件目錄下形成規範,這個可以解決你所提到的插件下載以及存儲、部署等問題,至於插件打包的格式,這個樓主可以慢慢研究,zip, jar,war都可以,只要可以解壓縮到對應的插件目錄即可
可以針對插件進行一個分類,例如獨立運行的插件、程式擴充插件、腳本等,然後針對性實現插件的機制,例如獨立的運行的插件只要在某些地方進行連結插入即可,如果是程式擴充插件,那麼可能需要統一插件呼叫函數或其他機制
如果做的完善一些擴展性好一些,還可以要求或讓插件繼承一些你的類,方便插件編寫
試著回答下樓主的1,2,3點問題:
插件調用有兩種方式,1:預先分佈到系統各個位置一些鉤子運行的程序,指定插件可以在對應的地方調用2:插件安裝好以後修改基礎程序調用鉤子,這個和應用的操作方式有關,如果是開源的可能要實現複雜的插件呼叫邏輯,如果是內部用,可以簡單一些,直接修改程式呼叫插件,這個可以考慮下實際情況
2.插件只能呼叫使用者資訊吧,如果真的讓插件可以修改或考慮安全性,那麼可以考慮開發有一個插件權限審核功能,讓插件開發的時候向系統發起的權限申請,然後系統來進行審核,或系統主動派權限,貌似也和實際情況有關
3.系統升級插件不相容的部分提示修改,插件升級的話直接更新下載覆蓋插件目錄
Java透過URLClassLoader讓程式支援外掛程式擴充:http://xxgblog.com/2013/07/04/java-urlclassloader-plugin/
這是我很久以前寫的一篇博客,透過定義插件介面加上反射載入插件jar包,實現和你所描述的需求非常相似,不知道能不能幫到你。
JAVA WEB外掛開發一般使用OSGi技術,這方面JXADF開源、免費,做得相當優秀,詳細參考:http://osgia.com
discuz論壇的插件大概原理可以作為參考,說說我所知道的,有沒有用樓主可以自己判斷下
首先保證插件相關文件都存儲在固定的插件目錄下形成規範,這個可以解決你所提到的插件下載以及存儲、部署等問題,至於插件打包的格式,這個樓主可以慢慢研究,zip, jar,war都可以,只要可以解壓縮到對應的插件目錄即可
可以針對插件進行一個分類,例如獨立運行的插件、程式擴充插件、腳本等,然後針對性實現插件的機制,例如獨立的運行的插件只要在某些地方進行連結插入即可,如果是程式擴充插件,那麼可能需要統一插件呼叫函數或其他機制
如果做的完善一些擴展性好一些,還可以要求或讓插件繼承一些你的類,方便插件編寫
試著回答下樓主的1,2,3點問題:
插件調用有兩種方式,1:預先分佈到系統各個位置一些鉤子運行的程序,指定插件可以在對應的地方調用2:插件安裝好以後修改基礎程序調用鉤子,這個和應用的操作方式有關,如果是開源的可能要實現複雜的插件呼叫邏輯,如果是內部用,可以簡單一些,直接修改程式呼叫插件,這個可以考慮下實際情況
2.插件只能呼叫使用者資訊吧,如果真的讓插件可以修改或考慮安全性,那麼可以考慮開發有一個插件權限審核功能,讓插件開發的時候向系統發起的權限申請,然後系統來進行審核,或系統主動派權限,貌似也和實際情況有關
3.系統升級插件不相容的部分提示修改,插件升級的話直接更新下載覆蓋插件目錄
Java透過URLClassLoader讓程式支援外掛程式擴充:
http://xxgblog.com/2013/07/04/java-urlclassloader-plugin/
這是我很久以前寫的一篇博客,透過定義插件介面加上反射載入插件jar包,實現和你所描述的需求非常相似,不知道能不能幫到你。
JAVA WEB外掛開發一般使用OSGi技術,這方面JXADF開源、免費,做得相當優秀,詳細參考:http://osgia.com