OSGI實(shí)戰(zhàn)和進(jìn)階
本文關(guān)鍵詞:OSGi實(shí)戰(zhàn),由筆耕文化傳播整理發(fā)布。
這兩天才看了BlueDavy的《OSGi實(shí)戰(zhàn)》和《OSGI進(jìn)階》,2篇寫(xiě)得很好的文檔。
51CTO編輯推薦:OSGi入門(mén)與實(shí)踐全攻略
實(shí)戰(zhàn)可做OSGI的入門(mén)資料,進(jìn)階可做OSGI的實(shí)踐資料。
很感謝BlueDavy大大的文檔,他的BLOG是。
進(jìn)階中講解了一個(gè)留言板的例子,基于Spring/Hibernate/WebWork2/OSGI。
其中提供了Hibernate和WebWork2的OSGI集成方案實(shí)現(xiàn),很精彩。Spring則采用spring-osgi。
其留言板的例子是按應(yīng)用模塊進(jìn)行劃分的,并用Equinox的擴(kuò)展點(diǎn)方式展現(xiàn)了菜單的加載和卸載實(shí)例。雖然這個(gè)菜單僅僅是一個(gè)鏈接,但也頗有參考意義。
此外還有如何將現(xiàn)有系統(tǒng)重構(gòu)成OSGI系統(tǒng)的講解,并總結(jié)了自己對(duì)OSGI應(yīng)用中的設(shè)計(jì)模式和最佳實(shí)踐的理解。
這是目前我看到的最好的OSGI的中文資料了。
該書(shū)對(duì)模塊的劃分很細(xì)(其實(shí)不是基于功能模塊,而是基于用例了),可能是因?yàn)榱粞园宓睦犹^(guò)簡(jiǎn)單,只好如此來(lái)演示。我想,在實(shí)際的項(xiàng)目中不會(huì)以這樣的細(xì)粒度進(jìn)行分模塊的開(kāi)發(fā),否則BUNDLE會(huì)多不勝數(shù),反而給維護(hù)帶來(lái)麻煩。
在BlueDavy總結(jié)的最佳實(shí)踐中,我認(rèn)為“接口和實(shí)現(xiàn)分離為不同的Bundle”不是一個(gè)好的實(shí)踐,搞太多的BUNDLE不是好事情。把接口BUNDLE掛著只對(duì)實(shí)現(xiàn)BUNDLE進(jìn)行熱插拔,與將接口和實(shí)現(xiàn)放在一個(gè)BUNDLE中做熱插拔是一樣的。
使用spring-osgi時(shí)就需要導(dǎo)入那么多的BUNDLE,我想最好能提供一個(gè)集成的BUNDLE,讓開(kāi)發(fā)者更容易搭建開(kāi)發(fā)環(huán)境。當(dāng)然也提供零散的BUNDLE讓開(kāi)發(fā)者可以自行選擇需要的,,就像有spring.jar也有spring-bens.jar/spring-context.jar/spring-aop.jar一樣。
現(xiàn)在搭建一個(gè)spring-osgi的開(kāi)發(fā)環(huán)境還是挺麻煩的,在下載的spring-osgi1.0M3的lib中還少了一些BUNDLE,只好在M2中去找。spring2.5發(fā)行的jar包將會(huì)同時(shí)支持普通開(kāi)發(fā)和OSGI開(kāi)發(fā),那時(shí)可能會(huì)方便一點(diǎn),現(xiàn)在還是rc1的版本,沒(méi)有試驗(yàn)是否可用。
現(xiàn)在在實(shí)際項(xiàng)目中運(yùn)用OSGI風(fēng)險(xiǎn)還是太大,spring2.5和strut2的2.1正式發(fā)布時(shí),應(yīng)該才是引入OSGI到實(shí)際項(xiàng)目的時(shí)機(jī)。
您正在閱讀:OSGi實(shí)戰(zhàn)和進(jìn)階【編輯推薦】
【責(zé)任編輯:Lotu TEL:(010)68476606】
原文:OSGi實(shí)戰(zhàn)和進(jìn)階 返回開(kāi)發(fā)首頁(yè)
本文關(guān)鍵詞:OSGi實(shí)戰(zhàn),由筆耕文化傳播整理發(fā)布。
本文編號(hào):73905
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/73905.html