Fabric3簡要入門
對Fabric3的關注源于對SOA的關注。最近SCA這個概念可是很火啊,而且Fabric3的背景有BEA,(Tuscany背后是IBM),剛剛在上海結束的BEA2007發布了WebLogic Server 10.3 Tech Preview,其中SCA的實現就是基于Fabric3的。而且Fabric3現在在codehaus上,codehuas可是出品了不少精品啊,XFire、Mule、Groovy、AspectWerkz等等,憑這點也值得關注下。編譯必須的庫(Eclipse: properties/Java Build Path)
環境準備好了,下面開始編寫代碼。
先看看我們要組織的SCA結構,這里為了減少本文篇幅只聲明兩個component,其余可以類似添加:
很簡單,只有兩個component。首先看CalculatorServiceImpl:
很簡單,僅有一點需要說明,@Reference是org.osoa.sca.annotations.Reference,負責組裝component。注意composite配置中的autowire="true",在calculator里面并沒顯示的添加對adder的引用。另外還有兩個annotation可以關注下,@Init和@Destroy,類似Junit里的setup和teardown,在component的每個方法調用前后執行些初始、善后的工作。
AddService和AddServiceImpl很簡單,沒什么好說的。
下面是CalculatorClient,讓我們來看看Fabric3的客戶端API和Tuscany有什么不同。
怎么說呢,除了用了不同的方法簽名之外和Tuscany好像大同小異:),都是先建立domain,然后拿到component進行操作。當然建立domain進行裝配這一過程很多細節還是值得一挖的,本文限于主題和篇幅不去涉及這些主題,(關鍵是俺能力有限,挖不深:))。
代碼準備好了,下面來運行下。
這里需要注意的是,光上面四個jar不足以運行Fabric3的例子,還需要Development Runtime中的/boot和/system兩個文件夾下的內容,層次結構如上圖所示,放在工程目錄下就行了。可以在http://fabric3.codehaus.org/Downloads下載Development Runtime,目前的版本是0.3。
然后再次編譯運行,打印出結果,運行順利通過,OK。
本文只涉及了calculator和adder兩個component,其余三個操作各位同學可以做個練習J 還有文中提到的@Init和@Destroy也可以同時嘗試下,更深入的主題還需要不斷的探索。
Fabric3是另一個SCA的實現(http://fabric3.codehaus.org/)。寫這篇東東是為了介紹除Tuscany之外的SCA實現供大家參考,現在江湖中Tuscany很是流行,但畢竟,一枝獨秀不是春,百花齊放春滿園,拿Fabric3來比較下競爭下,不是要弄它個血雨腥風,而是為了江湖能夠更和諧。不過老實說,在組織這篇東東的過程中,確實為非技術性的因素所困擾――Fabric3在文檔方面確實非常非常缺乏。如果這點不改進的話,恐怕很難和Tuscany競爭。
只有注冊用戶登錄后才能發表評論。 | ||
![]() |
||
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關文章:
|
||