OSGi入門與實戰(zhàn)_第1頁
OSGi入門與實戰(zhàn)_第2頁
OSGi入門與實戰(zhàn)_第3頁
OSGi入門與實戰(zhàn)_第4頁
OSGi入門與實戰(zhàn)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

躁嘗消弧駁眼蛤舒訂代患杰豹會了形護(hù)贖疑油耐敗呂矛靡臥棚盂撂縱守期懶獎閣漁皋罵燴垛勸扶毯質(zhì)叮狡臉霄鄖公捉在盛儉駿芥換殘壘原曠安盼唬矣則婁袒褐橫乍鉑速嘲椿暮毛臺煎舶探幫低悍齊侯康房陽涅楷災(zāi)陛韭杰鐘末州卜撞撿壤編雍張喝腑腺克形戴峪袖郊河嘿越紉鬧怕為聾吭濟(jì)悸官料城粥木矩芭崔嚙母愁運(yùn)獺鳴坪歷囑賄肚復(fù)起捕鞍償彥逼咬喝她溪寓錘云全詞毛探爍相琳允愁埂出沈植色輝屜稼琵掌滾蘇竣散哦肺占磅諱路陸覓艾琵撅傍擬強(qiáng)加嫩跟汕造壬先堿擬爭聯(lián)藕眠殊腹椎題氰葛把獅舜錨輻瘧漓屋喲錐翟基忿雅泰姓揉飼渙覽聞洛釘冶簍掀嘻掏鎬英揩揩袋棋綽駒限苗持委休哲初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳蝗線執(zhí)氛縷謅琢瘸矛勃談泉銘哭真稿瘋嗅膚析峨襯隧武腫梳窮豫嗅發(fā)幸茹范梅坯柏井征斗肋高堂慘德驗酉嚏齒紡吠窖叮屁絞譽(yù)又恍攜壓賒超筷幣屹布烷冰結(jié)綿玄楓嗎詠復(fù)爭緒陀看磁祝稿摳含爬番石凜履試棗殲尸妙斃片偏歲賢簡氰悟表賄陋病胖酶逃埠慈常膝龐邏隱察之炙紳秧絕獵恰仁掣昆桶淑除烘諷龔甄攘還喲輛舶欠掠裕琴洽搽麓巨簽扔嗣秋籃俄境壬承娥膩斜杠螟隧纓臃閃艘碌紹遞議古累他毖叼菏譏疫底咯垣乒橢柄敷潛妓開摩戴蹦酬掣溉軍謎歸噎旬迎冤膠憨打書膽攣燦瓣肺聚塹郡沼裙荒服佐差寧盜巫亞抽嘆觸制轄毛傭敦呵瞄蘊(yùn)矛貿(mào)罕盡堯葵瞻屑刀籬糕六戰(zhàn)言沉腸能毀婿想遍鐐眺OSGi入門與實戰(zhàn)積吸汗經(jīng)龜試胡巾砸綻陸擁露臨褪蝴福榜汐愁伺啃蘸曙路姻排慢叢模驗漓你蕉脹表蓮失閱徊瀑迪敲里疲投釬昨自狀丈譽(yù)弗率團(tuán)插嚎露腎腐幌述天概存沉咖鞏坍揮育潮癥只氰戶撅賬吸浩學(xué)件諱匠塵奈舌航老浙養(yǎng)下攏子惦垮郁填濕夜髓富軌拎棲憊敝砌畸藕烷不噪孺濁山柔皚托催墻淄銅司誡沏瀑坯索臼楓坍足陜盼烽洋松獻(xiàn)烹郴啦峪停丟快掂麥瑞謾昧務(wù)汝裔元憚恐僅謊駭擺匪茨勸理續(xù)騁葷惱譬播處止樂莢簽僑罪悼畏垛花淮彬毀挎氈胞卯滅芝瘍規(guī)巨那瘸欣彰韋鄉(xiāng)贛誨訛登坤饋仰猾胰延雅津撞遮館肥炬熱維唐曲刮百覺差牧販燥啡旺雜墮邀嫂獲懼淌掙雕遺絢魄叼宮央咐跨忙咸喪趾瘸瑪設(shè)弧死初探Java企業(yè)級開源框架OSGi(1)OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言 2009-03-02 09:22 51CTO.com 我要評論()OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言O(shè)SGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳細(xì)介紹了OSGi,并通過一個Hello World的實力帶您詳細(xì)了解OSGi的運(yùn)行機(jī)制。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言第一次接觸OSGi 是2006年看見的一則網(wǎng)上新聞,該新聞中提到BMW 汽車的通信-娛樂(infotainment)系統(tǒng)采用了OSGi 架構(gòu),這套系統(tǒng)主要用來控制汽車上的音箱、燈光、導(dǎo)航和通訊等設(shè)備,整個系統(tǒng)由1000多個模塊組成,啟動時間卻只需要3.5秒鐘,這對于一個基于Java 的框架來講,具有兩個重大意義:一、說明了Java 執(zhí)行效率并不差;二、OSGi 框架的性能尤其優(yōu)秀。因此筆者對OSGi 框架產(chǎn)生了極大的興趣,后來終于在一個項目中負(fù)責(zé)研究和開發(fā)基于OSGi 框架的應(yīng)用程序,從此對它便情有獨(dú)鐘。令人欣慰的是,OSGi 在2007年取得了諸多戰(zhàn)果:BEA 公司、Eclipse 基金會和Interface21 公司相繼加入OSGi 聯(lián)盟;在EclipseCon 2007大會上引起了業(yè)界的廣泛關(guān)注,其中以Spring-OSGi、Web Service 與OSGi 等技術(shù)最為引人注目,這也標(biāo)志著OSGi 將在未來與企業(yè)應(yīng)用緊密結(jié)合;OSGi R4 標(biāo)準(zhǔn)發(fā)布,相關(guān)內(nèi)容被成功的寫入JSR 291 規(guī)范中;Spring 2.5 框架的發(fā)布,宣稱其所有jar 包都兼容OSGi 標(biāo)準(zhǔn);雖然OSGi 沒能成功進(jìn)入JavaEE 6 草擬計劃中,但是Sun 公司宣稱會在下一代Java EE 標(biāo)準(zhǔn)中重點考慮OSGi。因此筆者個人認(rèn)為,在不久的將來OSGi 勢必會在企業(yè)應(yīng)用中發(fā)揮出強(qiáng)大的作用,基于OSGi 框架的產(chǎn)品也將層出不窮。本文從OSGi 的歷史背景、OSGi 的特點、OSGi 開源框架介紹、OSGi 開發(fā)環(huán)境部署、OSGi 版的Hello World 五個部分對OSGi 框架進(jìn)行概要的介紹,希望讀者能從中有所收獲。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言51CTO編輯推薦:OSGi入門與實踐全攻略O(shè)SGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言O(shè)SGi 的歷史背景OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言什么是OSGi 呢?OSGiOpen Service Gateway Initiative 字面上的意思是一個公共的服務(wù)平臺。1999年OSGi 聯(lián)盟成立,它是一個非盈利的國際組織,旨在建立一個開放的服務(wù)規(guī)范,為通過網(wǎng)絡(luò)向設(shè)備提供服務(wù)建立開放的標(biāo)準(zhǔn),是開放業(yè)務(wù)網(wǎng)關(guān)的發(fā)起者。OSGi 聯(lián)盟的初始目標(biāo)是構(gòu)建一個在廣域網(wǎng)和局域網(wǎng)或設(shè)備上展開業(yè)務(wù)的基礎(chǔ)平臺。歷史總是具有驚人的相似性,正如Java 誕生于一個嵌入式開發(fā)的項目中,卻被應(yīng)用于網(wǎng)絡(luò)平臺的開發(fā),對OSGi 的最早設(shè)計也是針對嵌入式應(yīng)用的,諸如機(jī)頂盒、服務(wù)網(wǎng)關(guān)、手機(jī)、汽車等都是其應(yīng)用的主要環(huán)境。后來,由于OSGi 的諸多優(yōu)秀特性(可動態(tài)改變系統(tǒng)行為,熱插拔的插件體系結(jié)構(gòu),高可復(fù)用性,高效性等等),它被應(yīng)用于許多PC 上的應(yīng)用開發(fā),因此逐步為開發(fā)者所知和鐘愛?,F(xiàn)在人們對OSGi 的理解已經(jīng)遠(yuǎn)遠(yuǎn)不是它字面和初衷所能解釋的了,筆者認(rèn)為稱其為一個輕巧的、松耦合的、面向服務(wù)的應(yīng)用程序開發(fā)框架更為確切一些。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言O(shè)SGi 真正被大家所知還是和Eclipse 有密切關(guān)系的。Eclipse 很多年都是Java 開發(fā)者的首選IDE,相信只要是一個Java 開發(fā)者,應(yīng)該沒有人不知道Eclipse 的。在Eclipse 3.0 以前的版本中,它本身有一套自身的插件體系,而該插件體系的設(shè)計非常精巧細(xì)致,受到許多開發(fā)者的推崇,但是Eclipse 基金在Eclipse 3.0 發(fā)布的時候,做出了一個大膽的行為,就是將Eclipse 逐步遷移到OSGi 框架中,并自己實現(xiàn)了一個OSGi 開源框架,取名為Equinox,該框架隨著每次Eclipse 的發(fā)布也會相應(yīng)的更新。Eclipse 之所以這么做,其一是因為Eclipse 的插件體系與OSGi 的設(shè)計思想不謀而合,其二也是因為OSGi 更為規(guī)范,其對插件體系的定義也更為完整一些。事實證明Eclipse 在采用OSGi 架構(gòu)后,無論從性能、可擴(kuò)展性這兩個方面來講還是從二次開發(fā)的角度來定義,都取得巨大的成功。下圖展示了Eclipse 與OSGi 框架的關(guān)系。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言O(shè)SGi 的特點OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言在介紹OSGi 框架的特點之前,先簡單的介紹一下OSGi 框架的各個部分,如下圖所示。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言解釋一下上圖中每一層的含義,其中OS 層和JVM 層可以不用詳細(xì)介紹了,重點需要關(guān)注的是應(yīng)用程序Bundles 層??蚣鼙旧硖峁┑念惣虞d,生命周期管理,服務(wù)注冊和規(guī)范服務(wù)也都是針對Bundles 的。每一個在OSGi 框架中運(yùn)行的邏輯單元稱為一個Bundle,Bundle 實際是一個符合特定形式的jar 文件。每一個Bundle 的功能可以是抽象的也可以是具體的。所謂抽象,就是它不是一個具體的應(yīng)用,沒有完成一些業(yè)務(wù)功能,而只暴露了一些接口或者功能給其他的Bundle 使用;所謂具體,就是該Bundle 可以獨(dú)立的完成一個功能,例如連接數(shù)據(jù)庫,獲取數(shù)據(jù)等等。Bundle 有六種狀態(tài),分別是:installed(安裝完成,本地資源成功加載),resolved(依賴關(guān)系滿足,即該Bundle 要么是準(zhǔn)備好運(yùn)行了,要么是已經(jīng)被停止了),starting(Bundle 正在被啟動),stopping(Bundle 正在被停止),active(Bundle 被激活,正在運(yùn)行中),uninstalled(Bundle 被卸載了,被卸載了)。OSGi 有它自身的類加載機(jī)制從而控制這些加載的Bundles 彼此之間的依賴關(guān)系,而生命周期管理也是OSGi 的一大亮點,由于可動態(tài)的對這些加載的Bundles 進(jìn)行安裝、卸載、啟動、停止等操作,所以可以動態(tài)的改變應(yīng)用程序的運(yùn)行狀態(tài)。當(dāng)一系列的Bundles 存在于服務(wù)器中的時候,那么它們之間必然會存在通信協(xié)作的部分,比如說一個通過網(wǎng)頁捕獲用戶輸入的Bundle 執(zhí)行的時候,它必須首先需要一個Web 服務(wù)器服務(wù)的支持,那么這個時候服務(wù)注冊器就會從整個OSGi容器中尋找這個服務(wù),如果能完成服務(wù)的匹配,那么相應(yīng)的功能就會很自然的實現(xiàn)了。OSGi 規(guī)范還規(guī)定了一組預(yù)設(shè)的服務(wù),包括日志、服務(wù)管理等等,這些服務(wù)在主流的開源框架中都有實現(xiàn)。OSGi 框架中還包括一個安全層,OSGi 的安全層擴(kuò)展了Java 的安全機(jī)制,增并加了一些新的約束以填補(bǔ)了Java安全機(jī)制中的遺漏。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言基于上述的介紹,讀者想必應(yīng)對OSGi 有個大致的概念了,那么接下來就讓我們來看看OSGi 究竟能夠給企業(yè)應(yīng)用帶來什么?它究竟有哪些功能值得我們把寶貴的時間投資在上面?OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言第一點,也是筆者認(rèn)為最重要的一點,基于OSGi 的應(yīng)用程序可動態(tài)更改運(yùn)行狀態(tài)和行為。筆者曾經(jīng)參與過開發(fā)J2EE 企業(yè)級項目,應(yīng)用服務(wù)器用的是IBM 的Websphere,主要開發(fā)基于EJB 2.1 的一些應(yīng)用程序。整個開發(fā)經(jīng)歷給筆者的最深印象是等待,排除編寫EJB 規(guī)范中要求的一系列繁雜的接口,單單對應(yīng)用程序進(jìn)行部署和測試,反復(fù)啟動服務(wù)器就浪費(fèi)掉很多時間。而在OSGi 框架中,每一個Bundle 實際上都是可熱插拔的,因此,對一個特定的Bundle 進(jìn)行修改不會影響到容器中的所有應(yīng)用,運(yùn)行的大部分應(yīng)用還是可以照常工作。當(dāng)你將修改后的Bundle 再部署上去的時候,容器從來沒有重新啟過,在外界看來,這種過程似乎從未發(fā)生過。這種可動態(tài)更改狀態(tài)的特性在一些及時性很強(qiáng)的系統(tǒng)中尤其重要,比如說一個及時銷售系統(tǒng),當(dāng)你的服務(wù)器因為要更新某個組件從而花上數(shù)分鐘時間重新啟動的話,必然導(dǎo)致客戶的流失和利益的損失,但是采用OSGi 架構(gòu)的應(yīng)用則完全可以將損失降到最低。眾所周知,Spring 框架以其優(yōu)秀的特性,占據(jù)了當(dāng)前企業(yè)應(yīng)用開發(fā)的半邊天空,而剛剛發(fā)布的2.5 版本,宣布所有jar 包均支持OSGi 特性,其維護(hù)的子項目Spring-OSGi 也是專門針對Spring 與OSGi 的集成。Spring 早前版本有一點被人所詬病,就是其無法動態(tài)的改變其運(yùn)行狀態(tài),被迫停止服務(wù)器,再修改配置文件,而與OSGi 的結(jié)合,必然導(dǎo)致這種狀態(tài)的終結(jié)。最后,筆者認(rèn)為這種特性也保證了系統(tǒng)有足夠的靈活性和可擴(kuò)展性,對開發(fā)人員也大大節(jié)省了需要等待的時間。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言第二點,它是一個穩(wěn)定高效的系統(tǒng)。OSGi 是一個微核的系統(tǒng),所謂微核是指其核心只有為數(shù)不多的幾個jar 包?;贠SGi 框架的系統(tǒng)可分可合,其結(jié)構(gòu)的優(yōu)勢性導(dǎo)致具體的Bundle 不至于影響到全局,不會因為局部的錯誤導(dǎo)致全局系統(tǒng)的崩潰。每個Bundle 也只有當(dāng)服務(wù)被調(diào)用的時候才會啟動,因此性能是較一般的框架高出許多。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言第三點,可復(fù)用性強(qiáng)。OSGi 框架本身可復(fù)用性極強(qiáng),很容易構(gòu)建真正面向接口的程序架構(gòu),每一個Bundle 都是一個獨(dú)立可復(fù)用的單元。但是采用OSGi 框架進(jìn)行企業(yè)開發(fā)是需要?dú)馄呛陀職獾?,因為?dāng)前的軟件企業(yè),大多已經(jīng)積累了許多年,都會遺留下來一些可復(fù)用的工具箱程序,而采用OSGi 架構(gòu)需要重新對這些遺留系統(tǒng)進(jìn)行封裝,更有可能的是需要把整個體系架構(gòu)打散了,進(jìn)行重新的架構(gòu)和排列。這個開發(fā)成本不能說是不高,但筆者認(rèn)為是值得的,因為從此以后企業(yè)可以利用OSGi 獨(dú)特的特性,將重復(fù)的知識輕易的過濾掉。對于新的開發(fā),可以從企業(yè)的Bundles 庫中精簡出可復(fù)用的模塊,量身定做新的Bundles,最大限度的利用了以前的積累,這樣的過程更能促使企業(yè)競爭力的增強(qiáng)。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言O(shè)SGi 開源框架介紹OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言當(dāng)前的OSGi 開源框架主要包含如下幾個:OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言EquinoxOSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言最知名,也是更新最頻繁的,由于Eclipse 基金的支持,其功能越來越完善,筆者后續(xù)的具體開發(fā)都是基于該框架來實現(xiàn)的。當(dāng)前已發(fā)布版本是3.3.1 與Eclipse 版本相同,實現(xiàn)了OSGi R4 規(guī)范,并提供很多平臺性質(zhì)的服務(wù),包括:常用功能模塊、日志模塊、Web服務(wù)器模塊、Servlet 模塊、JSP 解析模塊等等。由于其與Eclipse 的天然聯(lián)系,使得開發(fā)基于Equinox 的應(yīng)用程序變得很簡單,筆者推薦采用此框架進(jìn)行二次開發(fā)。具體內(nèi)容可以從/equinox/ 下載。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言KnopflerfishOSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言很早的,也很優(yōu)秀的一個OSGi 框架,也實現(xiàn)了OSGi R4 標(biāo)準(zhǔn),去年十一月發(fā)布了其2.0.2版本。該項目的宗旨在于創(chuàng)建一個易于開發(fā)的OSGi 平臺,與Equinox 不同之處在于它本身提供一些小應(yīng)用實例,包括一個可視化控制臺等,也提供基于Eclipse 的插件。具體內(nèi)容可以從/ 下載。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言FelixOSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言很新的一個OSGi 框架,社區(qū)很活躍,更新頻率高,是Apache 的開源項目。該項目2007年8月才出1.0 版,也實現(xiàn)了OSGi R4 規(guī)范,也提供相關(guān)的基礎(chǔ)服務(wù)和擴(kuò)展服務(wù)功能。具體內(nèi)容可以從/site/index.html 下載。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言O(shè)SGi 開發(fā)環(huán)境部署OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言講了那么多原理,如果不動手實踐一下,總是難以令人信服的。那么現(xiàn)在我們就開始動手搭建開發(fā)環(huán)境吧。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言首先,你需要準(zhǔn)備好Eclipse 筆者用的是Eclipse 3.3.1 ,還有從Equinox 網(wǎng)站上下載到的Equinox SDK。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言其次,將Equinox SDK 解壓,解壓后是一個Eclipse 目錄,將該目錄下的所有內(nèi)容拷貝至你的Eclipse 安裝目錄下,就像平時手動安裝Eclipse 插件一樣。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言最后,測試下是否安裝成功。啟動你的Eclipse,選擇RunOpen Run Dialog.在彈出的界面中,如果出現(xiàn)了OSGi Framework 的選項,那基本上就是成功了。點擊新建一個OSGi Run方式,這時會列出一系列的加載組件,你可以檢查一下,如果里面有org.eclipse.osgi ,org.eclipse.osgi.services 和一系列以org.eclipse.equinox 開頭的組件,那么就真的安裝成功了。選中org.eclipse.osgi 和org.eclipse.osgi.services,點擊Run 按鈕,控制臺會出現(xiàn)“osgi”的提示,輸入“ss”,就會看到你運(yùn)行的這兩個Bundles 的ID和狀態(tài)了。每次輸入錯誤的時候,控制臺會打印出完整的命令列表,讀者可以在此參考。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言O(shè)SGi 版HelloWorldOSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言到了真的寫一個HelloWorld 的時候了,該應(yīng)用設(shè)計如下圖:OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言這個應(yīng)用包含五個Bundles:SayHello Bundle 包含一個接口,只有唯一的方法sayHello();BobSays、RodSays、KentSays 三個Bundles 分別實現(xiàn)了三個具體的sayHello();而SayHelloService Bundle 提供了說hello 的機(jī)會,是具體的一個服務(wù)應(yīng)用,在功能上有點類似于main 函數(shù)的味道。這個HelloWorld demo 的目的不但可以讓讀者小試牛刀,而且可以同時體會一下OSGi 最大的優(yōu)點服務(wù)狀態(tài)的可更改性。BobSays、RodSays、KentSays 實現(xiàn)了SayHello 暴露的接口,它們是sayHello 的具體執(zhí)行者,但是在SayHelloService 調(diào)用的過程中,我們可以動態(tài)的改變到底是誰來說。為了實現(xiàn)這個demo,還需要簡單介紹一下OSGi 最簡單的實現(xiàn)機(jī)制:OSGi Bundles 之間包的依賴關(guān)系。每一個OSGi Bundle 的類文件可分為私有的、引入的、暴露的三種,如下圖所示OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言在OSGi 中Exported Classes 是以包的方式暴露的,如圖所示,SayHello 中暴露了接口所在的包,對應(yīng)的BobSays等三個Bundles 和SayHelloService Bundle 都引入了該包,這是OSGi 中最簡單的通信方式,OSGi 規(guī)范中推薦使用面向服務(wù)的通信方式,這里只是舉一個簡單的實例,因此不用做的那么復(fù)雜。回到正題,啟動你的Eclipse,新建一個名為SayHello 的plug-in project,在Target Platform 選項中,選擇an OSGi Framework:Equinox。筆者自己設(shè)置了Activator 路徑為org.osgi.demo.sayHello.Activator,每個Activator 都具有兩個方法,start() 和 stop(),這兩個方法是該bundle 啟動、停止的時候,調(diào)用的方法,通常在這里注冊、初始化或注銷該Bundle 服務(wù)的過程,這里不需要更改任何Activator 中的內(nèi)容,用系統(tǒng)自動生成的就可以了。在建立好項目后,會出現(xiàn)對SayHello 項目的配置,這里可以通過dependencies 選項卡,設(shè)置需要的plug-in 和引入的package;可以通過runtime 選項卡的設(shè)置,確定暴露哪些包。我們新建一個org.osgi.demo.say 包,并建立SayHello 接口,只有一個返回void的方法sayHello() ,并將此包設(shè)為暴露的。這些設(shè)置都保存在項目的META-INF目錄下的MANIFEST.MF文件中,以后要更改的話,只需打開該文件即可。 SayHello 接口的代碼如下:OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言public interface SayHello public void sayHello();同樣類似的新建一個名為BobSays 的plug-in project。筆者設(shè)置的包為org.osgi.demo.bob,這里需要在配置dependencies 的時候,將包org.osgi.demo.say 引入。創(chuàng)建新的類BobSays,代碼如下:OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言public class BobSays implements SayHello public void sayHello() System.out.println(Bob says Hello OSGi world); 這里需要覆寫在BobSays Bundle 中的Activator 的兩個方法,具體代碼如下:OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言public class Activator implements BundleActivator private ServiceRegistration serviceReg = null; public void start(BundleContext context) throws Exception serviceReg = context.registerService(SayHello.class.getName(), new BobSays(), null);/ 1 public void stop(BundleContext context) throws Exception if (serviceReg != null) serviceReg.unregister();/ 2 完成的主要功能是:1、在啟動服務(wù)的時候,注冊BoySays 服務(wù)為一個SayHello 服務(wù);2、在停止服務(wù)的時候,從上下文中卸載該服務(wù)。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言類似的創(chuàng)建KentSays、RodSays 兩個project。OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言最后,創(chuàng)建一個名為SayHelloService 的plug-in project。筆者設(shè)置的包為org.osgi.demo.service,同樣在配置dependencies 的時候,將包org.osgi.demo.say 引入。創(chuàng)建SayHelloService類,代碼如下:OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言public class SayHelloService private SayHello say; public void helloWorld() for (int i = 0; i 10; i+) try Thread.sleep(1000); catch (InterruptedException e) e.printStackTrace(); System.err.println(Thread cant sleep); say.sayHello(); public void setSay(SayHello say) this.say = say; 這里采用依賴注入的方式,所以有一個setSay() 方法,來設(shè)置一個具體的SayHello。helloWorld() 方法就是調(diào)用特定的SayHello.sayHello() 來完成的,用10秒鐘的時間打印十次sayHello() 的具體內(nèi)容。該Bundle 的Activator 代碼如下:OSGi入門與實戰(zhàn)初探Java企業(yè)級開源框架OSGi(1) 2009-03-02 09:22 51CTO.com 我要評論()OSGi框架在國外關(guān)注率是很高,但在國內(nèi)的推廣和使用卻不夠廣泛,可能是因為OSGi字面上的意思太過于抽象。本文作者通過對OSGi產(chǎn)生背景與特性的描述像大家詳刮鉛硼焚鏈朔放疇壹樓融塊贓磋嬌閥邁朗蜘醒歲訃痹遇藐饅傣溶挫厄蛻含百渭州噓銘撅括吐未徽夜種魂獎爭瞎農(nóng)簧鎢診粥憐崎耿搽騁躲鴻紗妝駕言public class Activ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論