到了華爲,纔開始接觸到OSGi,感覺用這個框剪來寫後臺服務是非常好的,可以動態部署服務。也開始學習OSGi,OSGi是OSGi聯盟提出的開放的服務規範,eclipse3.0以後插件體系就是基於OSGi來實現的。OSGi好處就是模塊劃分力度可以更小,可以動態的部署服務
Eclipse平臺對OSGi開發提供了較完善的支持,OSGi帶來了規範劃分,實現了高內聚低耦合。在開發應用程序的時候要精心劃分,劃分的原則就是儘量保持各個模塊的獨立性。模塊之間的耦合性降到最小,使各個bundle之間通過OSGi框架註冊的服務來通信。可以避免傳統之間模塊之間的包和類的引用。(本人也是整理別人的博客)
學習筆記:
1:對以別的工程包的引用,可以不再是包依賴,而是通過一個bundle導出一個接口,別的包引用
2:包org.osgi.util.tracker是OSGi框架提供的監視Bundle提供的服務是否可用的機制
3:在run的設定中可以設置bundle的啓動級別,
4:命令下啓動bundle,到jar包的目錄下面。然後運行java –jar osgitest.jar –console
5:Bundle以及Bundle提供的服務可以隨時消失或者重新加入,而其它使用服務的Bundle可以感知服務是否可用,並動態地改變自己的行爲。