一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

4大 Java OSGi 框架比較 (Knopflerfish, Apache Felix, Equinox, Spring DM)

      OSGi正在成為一種趨勢,越來越多的項目采用了OSGi,越來越多的中間件都開始采取了OSGi的標準。身為一名Java開發(fā)人員,如果你還對OSGi結(jié)構(gòu)一無所知,那你真的有點Out了。

      什么是OSGi

      OSGi的名稱來源于其開源組織的名稱Open Services Gateway initiative,OSGi是一個標準,它致力于提供給Java項目一個模塊化的底層環(huán)境,以及一系列通用的服務(Service)。和普通的JVM程序相比,OSGi的程序天生擁有動態(tài)模塊的特點,不同的模塊(OSGi里稱之為Bundle)有著獨立的生命周期,可以獨立進行安裝、啟動、停止、卸載的操作,模塊間的依賴性管理也由OSGi提供。你可以看出,OSGi非常適合需要進行Plugin管理的項目,一個典型的成功案例就是Eclipse和它眾多的Plugin。OSGi標準還規(guī)范了一系列我們常間的操作,日志、配置文件、事件隊列、Web開發(fā)、JPA&JDBC等等,大部分部署OSGi標準的框架都提供了這些服務,這樣一方面規(guī)范了我們代碼的結(jié)構(gòu),一方面節(jié)約了我們開發(fā)的時間。

      目前基于OSGi的框架大概有4個:Knopflerfish, Apache Felix, Equinox, Spring DM。因為都是基于OSGi標準的,他們的大致用法和核心功能是一致的。一般來說一個OSGi的組件(Bundle)可以輕易的從一個框架遷移到另一個框架??蚣艿牟煌饕求w現(xiàn)在他們本身的設計和額外的服務上。根據(jù)我的一些經(jīng)驗,對這4個框架進行了一下比較,希望對剛接觸OSGi或是由于如何選擇OSGi框架的人有所幫助。

      Apache Felix 最全面的框架

      Apache Felix是Apache旗下的一個OSGi框架,項目本身非常成熟,已經(jīng)被用到了很多其他的項目中,例如Apache Servicemix。它本身提供的服務也是最全的,幾乎涵蓋了全部的OSGi 4.2的標準。除此之外還提供了一些非標準的功能,例如iPOJO。框架本身非常緊湊,你只需要3個包加一個shell就可以運行了,無論是開發(fā)還是Debug都非常簡便。除了Felix,還有兩個項目是和OSGi相關的。一個是Apache Felix Karaf,它本身是Felix的一個子項目,但他其實是封裝了Felix提供更高一層的Runtime,例如提供了JAAS。另一個是Apache Aries,目前還處于起步階段,它作為Felix的補充,提供OSGi企業(yè)級規(guī)范,包括JPA、JDBC、JTA、JNDI等等。

     總的來說,Apache Felix是我個人推薦的最佳OSGi框架,它簡單的結(jié)構(gòu)也更適合出學OSGi的開發(fā)人員。

     Equinox 與Eclipse完美結(jié)合

     Equinox是Eclipse旗下的OSGi框架,本身也被Eclipse采用,是Eclipse注明的PDE開發(fā)環(huán)境的底層。Equinox本身也是相當?shù)娜娴目蚣?,提供的功能不比Felix少多少。但是它功能的分類就稍顯混亂,文檔和Sample也組織的不是很好。事實上相當Equinox還是被當做開發(fā)Eclipse Plugin的應用較多,如果你要開發(fā)一個Web程序,你就會感到它本身的功能和文檔不夠全面。Equinox最大的優(yōu)勢在于它和Eclipse結(jié)合緊密,只要你安裝了PDE,你就已經(jīng)有了Equinox,可以方便的在Eclipse里設置你開發(fā)的Bundle,啟動、部署等操作也異常簡單,而且有專門的Debug界面,你還能要求什么呢?

      如果你想基于Eclipse開發(fā),Equinox無疑是好選擇。但對于新手而言,有時候會搞混Eclipse Plugin與OSGi的關系。

      Spring DM 畸形的需求產(chǎn)物

      Spring DM是Spring旗下的OSGi框架,Spring我想大家都知道了,Spring DM的最大特點就是結(jié)合了Spring框架。我之所以說特點還不是優(yōu)勢,是因為我認為這個需求本身就是錯誤的。Spring和核心就是一個IoC,當然后來它的外延擴大了,提供了越來越多亂七八糟的功能。OSGi規(guī)范本身就制定了一系列IoC的功能標準,尤其是其中的BluePrint其實相當多的借鑒了Spring,因此完全沒有必要再引入Spring充當新的IoC了。Spring本身無論是ClassLoader還是配置文件上都與OSGi格格不入,之所以有這種需求是因為現(xiàn)在有大量基于Spring的項目想要過渡到OSGi上。Spring還發(fā)布了一個App Server叫Spring DM Server,是一個基于Spring DM的App Server,你會發(fā)現(xiàn)你需要加載80+的包來完成一個hello world操作,這種恐怖的依賴性正是Spring所帶來的。

      意識到這個問題的顯然不只是我一個人,傳聞Spring DM和Spring DM Server都將會移交給Eclipse。就目前來說除非你有基于Spring項目的移植需求,我不推薦其他任何情況下使用Spring DM。

      Knopflerfish 孤獨孤傲

      Knopflerfish其實是OSGi的先行者,但是由于沒有強力的靠山,再后來的競爭中顯然不如前三者有人氣。它本身是一個相當標準OSGi框架,提供了絕大多數(shù)標準功能,但是無論在人氣上,開發(fā)進度上,文檔完善上都不如其他的三者。

      既生瑜,何生亮阿~

it知識庫4大 Java OSGi 框架比較 (Knopflerfish, Apache Felix, Equinox, Spring DM),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 三区在线观看 | 极品销魂一区二区三区 | 午夜激情免费视频 | 免费国产一区 | 国产精品资源在线观看网站 | 国产一区二区三区福利 | 国产一区三区二区中文在线 | 色亚洲欧美 | 日本高清在线精品一区二区三区 | 日本a级精品一区二区三区 日本a在线看 | 激情综合在线观看 | 国产一区二区视频在线播放 | 亚洲国产精品久久婷婷 | 成人综合激情 | 亚洲成人中文 | 国产精品成人久久久 | 天天干天天弄 | 欧美三级黄 | 亚洲精品香蕉婷婷在线观看 | 自偷自拍亚洲欧美清纯唯美 | 免费伦费一区二区三区四区 | 亚洲国产婷婷综合在线精品 | 亚洲美女福利视频 | 国产拍拍拍 | 婷婷四房综合激情五月性色 | 精品91视频| 中文字幕一二区 | www.91在线视频 | 成人综合在线视频 | 国产麻豆91在线 | 婷婷综合五月中文字幕欧美 | 亚洲欧美一级视频 | 韩日一级毛片 | 精品国产精品国产偷麻豆 | 一区二区三区免费视频 www | 精品久久久久久 | 美女网站色免费 | 狂野欧美性猛交xxxx巴西 | 久久综合狠狠综合狠狠 | 欧美在线不卡视频 | 欧美色成人综合 |