【OSGI快速入門】理解了這個起碼減少2周的看書時間

一、什麼是OSGI

    OSGi(Open Service Gateway Initiative)技術是Java動態化模塊化系統的一系列規範。OSGi一方面指維護OSGi規範的OSGI官方聯盟,另一方面指的是該組織維護的基於Java語言的服務(業務)規範。簡單來說,OSGi可以認爲是Java平臺的模塊層。

    OSGi服務平臺向Java提供服務,這些服務使Java成爲軟件集成和軟件開發的首選環境。Java提供在多個平臺支持產品的可移植性。OSGi技術提供允許應用程序使用精煉、可重用和可協作的組件構建的標準化原語,這些組件能夠組裝進一個應用和部署中。

    上面只是簡單的從百度C了一些介紹,只需要知道是一個新的框架就可以了,比以往用的框架都好用(個人覺得)。而且目前很多大公司都在用,小型的用的少,畢竟這個的成本高,入門門檻有點那啥,第一次有點懵逼。

二、開發前準備

    開發工具:Eclipse + 開發環境(搞開發的就不用說了吧) + felix(我用的是5.4.0)

    開發思維:OSGI是將傳統的各個模塊進行了更細緻化的分離

    felix:運行OSGI項目目前所用的容器(支持熱插拔,好爽~~~)

    Maven項目:使用過Maven項目吧,知道咋回事就行

三、構架一個OSGI框架的項目

    3.1 先啓動felix

    cmd >>進入felix所在文件 >>java -jar bin/felix.jar 好啦,目前已成功啓動felix,第一步搞定。

    wKioL1eET1zie-dqAAAbpJYKcTQ062.png-wh_50

    3.2 新建項目

    新建一個Maven Project >> 選擇QuickStart的方式就可以了,起名爲:email-parnent

    點擊剛纔新建的Maven項目,新建4個Maven Module(一個一個建),名字分別爲:email-api、email-client、email139、email163

    到這裏,已經建好了1個Maven項目,4ge Module,這4個Module是email-parnent的子項目。

    繼續走吧,如果上面已經搞定了。

    配置email-parnent項目的pom文件

    a、在<Properties>標籤中加入下面配置(執行我們的jdk版本)

    <maven.compiler.source>1.7</maven.compiler.source>

<maven.compiler.target>1.7</maven.compiler.target>

    b、加入一個依賴

    <dependency><groupId>org.osgi</groupId><artifactId>org.osgi.core</artifactId>

<version>6.0.0</version></dependency>

    c、繼續配置

    wKioL1eEUYzR3n4dAABvK7qJmz4958.png-wh_50

    3.3 email-api(放接口的)

    建了一個包路徑:org.email.api

    建一個接口:IEmailService 

    public void sendEmail(String dest,String title,String content);

    下面,繼續配置這個項目:

     注意,下面這段文字 在所有的實現項目、client中都要用到;

    <groupId>FirstOsgi</groupId>

     <artifactId>email-api</artifactId>

     <version>0.0.1-SNAPSHOT</version>

    wKiom1eEUp2QwME3AAB75pRWGcg510.png-wh_50

    好啦,我們的api搞定啦

    3.4 email-139(email163同理、email-client配置、編碼原理一樣)

    下面就直接貼圖了

    wKiom1eEVljiZdcmAADDPvB90ZA221.png-wh_50

    wKiom1eEVrmiY2MhAAHP66SXXxE212.jpg-wh_50

四、打包運行吧

    直接編譯父項目,email-parnent,生成了4個jar包,將這4個jar包 拷貝到 felix目錄/bundle下,好啦,編碼、包都已準備完成,下面直接用命令行部署吧。

    輸入 lb :查看當前運行的包及id

    stop 0 :停止根目錄,(felix容器停止了)

    重新啓動即可:java -jar bin/felix.jar,會自動將bundle目錄下的jar包進行編譯,至此,我們的OSGI項目就OK啦。

    wKioL1eEWK7Au6b6AACEOULM65g112.png-wh_50

小結:第一次寫博客,寫的不是很詳細,會越來越好的。

    

    

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章