您好,登錄后才能下訂單哦!
本篇內容介紹了“OSGi的動態化系統搭建方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
搭建動態化的系統是作為Java開發人員一直就非常追求的目標,一個系統能夠動態化就意味著:
◆ 添加新功能時不需要重啟系統;
◆ 修改已存在的功能時不需要重啟系統;
◆ 刪除一些不需要的功能時不需要重啟系統;
◆ 修改系統中的配置時可以不需要重啟系統即刻生效;
◆ 系統的業務行為可動態的改變。
也許習慣了傳統Java開發方式的人而言,沒有這些動態化也沒什么,但不可否認,這些動態化的特征還是非常吸引人的,尤其是如果能很容易就獲得這些好處,那么自然就不會錯過這些好處了,基于OSGi可以很容易的讓我們獲取到這些好處,對于上面所描述的系統的動態化的特征可以歸納為這么三點:
◆ 模塊的動態化:新增、修改、刪除以及擴展;
◆ 配置的動態化;
◆ 行為的動態化。
下面就來看看基于OSGi是怎么樣來構成這樣的動態化的系統的。
◆ 模塊的動態化:新增、修改、刪除以及擴展;
● 新增
對于模塊的新增,在OSGi可以通過在控制臺中使用install命令去安裝,或者調用BundleContext的installBundle方法去安裝新的模塊;
● 修改
當修改了模塊后,只需在控制臺中使用update命令去更新模塊,或者通過調用BundleContext.getBundle(Bundle的id).update();
● 刪除
當需要刪除不需要了的模塊時,只需在控制臺中使用uninstall命令去刪除,或者通過調用BundleContext.getBundle(Bundle的id).uninstall();
● 擴展
對于模塊的擴展,可以使用OSGi所支持的調用多服務的方式或者使用Equinox提供的擴展點的方式來實現。
◆ 配置的動態化
對于配置的動態化方面,使用OSGi的Configuration Admin Service(簡稱CM)可以很容易的實現,使用CM使得系統中的配置可以采用統一的形式去管理、動態的通知變化以及使用。
◆ 行為的動態化
系統在運行中要根據業務的需求選擇相應的服務是經常會碰到的需求,例如一份文件在某種情況下可能需要進行存儲,而在另一種情況下可能是需要進行提取信息并存儲為其他文件,由于OSGi支持服務選擇時的過濾(如context.getAllServiceReferences(服務接口完整類名,"(key=db)")),使得系統可以在運行時根據需求來選擇或配置使用相應的服務,而OSGi同時又支持了服務的動態化的管理,當服務可用時會自動的通知,當其不可用時同樣會自動的通知,這就保證了開發人員在使用服務時可做出相應的處理。
如果覺得你所設計的系統需要這些動態化的特征的話,那么建議使用下OSGi(推薦的OSGi框架:Equinox)試試,或者可以參考下OSGi的實現方法自己去實現所需要的動態化的特征。
“OSGi的動態化系統搭建方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。