這兩天才看了BlueDavy的《OSGI實戰》和《OSGI進階》篇寫得很好的文檔
實戰可做OSGI的入門資料進階可做OSGI的實踐資料
很感謝BlueDavy大大的文檔他的BLOG是
進階中講解了一個留言板的例子基於Spring/Hibernate/WebWork/OSGI
其中提供了Hibernate和WebWork的OSGI集成方案實現很精彩Spring則采用springosgi
其留言板的例子是按應用模塊進行劃分的並用Equinox的擴展點方式展現了菜單的加載和卸載實例雖然這個菜單僅僅是一個鏈接但也頗有參考意義
此外還有如何將現有系統重構成OSGI系統的講解並總結了自己對OSGI應用中的設計模式和最佳實踐的理解
這是目前我看到的最好的OSGI的中文資料了
該書對模塊的劃分很細(其實不是基於功能模塊而是基於用例了)可能是因為留言板的例子太過簡單只好如此來演示我想在實際的項目中不會以這樣的細粒度進行分模塊的開發否則BUNDLE會多不勝數反而給維護帶來麻煩
在BlueDavy總結的最佳實踐中我認為接口和實現分離為不同的Bundle不是一個好的實踐搞太多的BUNDLE不是好事情把接口BUNDLE掛著只對實現BUNDLE進行熱插拔與將接口和實現放在一個BUNDLE中做熱插拔是一樣的
使用springosgi時就需要導入那麼多的BUNDLE我想最好能提供一個集成的BUNDLE讓開發者更容易搭建開發環境當然也提供零散的BUNDLE讓開發者可以自行選擇需要的就像有springjar也有springbensjar/springcontextjar/springaopjar一樣
現在搭建一個springosgi的開發環境還是挺麻煩的在下載的springosgiM的lib中還少了一些BUNDLE只好在M中去找spring發行的jar包將會同時支持普通開發和OSGI開發那時可能會方便一點現在還是rc的版本沒有試驗是否可用
現在在實際項目中運用OSGI風險還是太大spring和strut的正式發布時應該才是引入OSGI到實際項目的時機
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28459.html