- 相關推薦
java程序員學習Flex和BlazeDS有什么好處
java程序員學習Flex和BlazeDS有什么好處呢?看了下面的內容你就得到答案了。更多內容請關注應屆畢業生考試網!
好處一:開源
Flex軟件開發工具包核心(SDK)是開源架構,用以創建以及維護RIAs,不同瀏覽器和操作系統具有同樣的外觀設計風格。Flex是在Mozilla公共許可證下發布的。經過編譯的Flex應用程序在私有的Adobe Flash平臺上運行。
對于連接Flex 和Java,BlazeDS是為遠程和信息服務的開源技術。它作為servlet運行在Java應用程序服務器,允許你在任何Java web應用程序規范中使用。BlazeDS是從Lesser GNU Public License (LGPL)得到的許可。除了BlazeDS的發布,Adobe公布了ActionScript信息格式說明(AMF),允許BlazeDS 和Java與Flex客戶端聯系使用二進制格式。
好處二:強大的社區支持
Flex具有一個非常活躍的社區,有很多有貢獻的主題。Flex.org,是一個關于Adobe的社區新聞站點,差不多每天都有更新,Yahoo! 上的Flex使用小組有超過11,000名成員。
比如,Google 編碼上的FlexLib項目貢獻出大量的開源用戶界面(UI)組成部分。Swiz 和 Mate項目貢獻出一個架構來幫助處理事件。Gorilla Logic已經為自動化的UI測試貢獻出Flex Monkey。
好處三:你可以在六個月內得到一份工作
根據Adobe的Flex教父James Ward的說法,市場對Flex高級工程師仍然有很大的需求。學習Flex能夠讓你掌握一門技術,在競爭中處于優勢地位。
好處四:更高的商業投資回報率
一般來說,開發企業級web應用軟件是眾所周知的困難。Flex 和BlazeDS提供的不僅是更高級的工具,而且更容易擴展。開發者生產力的增長允許市場上銷售的更多更快。Flex 和Flash創造了更完美的用戶體驗,提升了銷量以及價格。
一個理想的例子是博德斯圖書連鎖店,它最近在介紹一種新的具有“Magic Shelf”的website。這個站點使用Flash界面來模擬翻書的感覺。博德斯書店發現這真的可以提高流通率:“使用這種Flash仿真界面,顧客可以查看圖書,DVD和 CD的封面,使用這一舉措比沒有體驗過的顧客多62%的購買率”
好處五:Flex 是第一種用來設計UIs的語言
很多設計語言都是在事后增加了創建UIs的支持功能。特別體現在Java Swing上。因此,Swing處理一些簡單事情,比如線路數據,是非常痛苦的,要求使用特殊的Swing數據模型。Swing的最大問題是你不得不在應用程序界面中挖掘很深才能有效。
Flex恰恰相反:它一開始就是為創建web UIs而設計的。就像Bruce Eckel經常說的那樣,Flex是第一款為UI設計的特定語言。所以使用Flex創建UI比使用其他方法要簡單,比如JavaServer Page(JSP),JavaServer Faces (JSF)以及Swing。數據綁定,事件句柄,元件布局還有其它的常見UI發展技術都可以被這種語言創建,甚至你僅僅掌握了一小部分語言知識就可以。
好處六:擁有與Java類似的設計模型
你可以使用現有的開發Java的工具進行開發。你也可以使用包含在SDK中免費的命令行工具開發Flex應用程序,通過Adobe Flex Builder(一個Eclipse插件)或者使用最近的IntelliJ IDEA 8。
Flex提供一個狀態環境,數據可以加載到客戶端。編譯模型與Hypertext Markup Language (HTML)設計相比更像是編譯一個桌面客戶端,使得任何下載Java Swing設計的人都對編譯模型感到很熟悉。
Flex編譯使用了一個MXML組合,一個UI markup語言,與可擴展的Markup 語言 (XML)相似,還有Adobe ActionScript和面向對象的腳本語言。這個組合使得編譯Flex與編譯Java相似,因為你可以使用概念非常熟悉的面向對象的方式。
理想的方法是創建你的開發環境使得Flex應用程序能夠在web開發地址錄中創建。使用這種方法,你不需要在每次創建后重新部署您的應用程序:一個簡單的瀏覽器恢復功能,可以看到最后一次操作。結果是使用Flex 和BlazeDS開發相當有效。
好處七:BlazeDS可以在任何Java應用服務器上運行
BlazeDS的多個版本都是可以使用的,包括即將投入使用的包含Apache Tomcat設置的版本。在這篇文章中,我使用二進制分布,作為web檔案(WAR),來顯示你在應用服務器上如何進行部署。否則你可以引用Java存檔(JAR)文件,在你的項目中使用。為了獲取各種各樣安裝BlazeDS的信息而訪問BlazeDS wiki。
這個例子是在現有的項目上使用BlazeDS。你只需要在你的項目上增加JAR文件,然后你可以在應用程序內部使用BlazeDS,這允許你在任何可以部署應用程序的地方部署它。
在你的項目上增加BlazeDS,完整步驟如下:
1、 找出包含BlazeDS WAR文件 jar xvf blazeds.war
2、 復制JAR文件到你的項目lib目錄:cp -R WEB-INF/lib /sodaSample。
好處八:可以在現有的Java應用程序上使用
再soda的例子中,假設你想要暴露現有的soda服務以便遠程的Flex應用程序可以與之鏈接。在現有的應用程序上創建BlazeDS的基本步驟如下:
1、 在WEB-INF/flex目錄下編輯BlazeDS配置文件。
2、 在應用程序上web.xml上規定MessageBrokerServlet 以及session listener。
創建BlazeDS以后,你需要增加你的soda服務到BlazeDS遠程配置文件,它允許從Flex 客戶端訪問soda服務。通過規定一個目的地以及一個或者更多的數據傳送渠道來實現添加。基礎的AMF渠道在服務器.xml文件中被定義。通過這個定義在遠程config.xml 中識別你的目的地:
< destination id="sodaService" channels="my-amf">
< properties>
< source>com.gorillalogic.sodaSample.SodaService< /source>
< /properties>
< /destination>
通過在遠程配置文件中定義端口,你可以從Flex客戶端訪問任何一個Java服務。
傳遞Java數據模型到Flex客戶端,在你的腳本class中定義兩者之間的映射:
[Bindable]
[RemoteClass(alias="com.gorillalogic.sodaSample.SodaModel")]
這段代碼顯示Flex,當遠程服務訪問返回Java SodaModel的結果把其映射到你的SodaModel。Flex客戶端的示例顯示如何訪問這個Java服務。訪問返回一個odaModel,根據你的命令:
public function callSodaService():void {
var sodaType:String = type.text;
var sodaCount:int = parseInt(cnt.text);
var flag:Boolean = preOpen.selected;
remoteObject.getSoda(sodaType, sodaCount, flag);
}
private function resultHandler(event:ResultEvent):void {
var sodaModel:SodaModel = event.result as SodaModel;
}
Flex從變化的結果中返回你的結果,映射到你的SodaModel上。我不在這里講述細節,但是一個需要說的細節是在匯編配置中指定services-config.xml,像以下所寫:
-locale en_US -services=/nsource/sodaSample/web/WEB-INF/flex/services-config.xml -context-root /
如果不這樣,你的Flex客戶端將無法找到Java服務。同樣的方法,你可以從客戶端傳遞一個對象返還到服務。比如,你可以傳遞空的soda model返還到客戶端。
好處九:你可以擴展BlazeDS以及使用Java對其進行修改
假設你決定當soda服務器被訪問的任何時候,要增加一個特別的logging。你可以擴展Java編輯者的標準來增加logging。
首先,增加Java類別擴展JavaAdapter:
import flex.messaging.services.remoting.adapters.JavaAdapter.
public class TimingJavaAdapter extends JavaAdapter {
Then, overload the invoke() method:
public Object invoke(Message message) {
RemotingMessage remotingMessage = (RemotingMessage) message;
String operation = remotingMessage.getOperation();
String destination = remotingMessage.getDestination();
Logger.info("calling " + operation + " on destination " + destination);
Object data = super.invoke(message);
return data;
}
使用這種方法,你可以看見即將要進行的操作以及訪問的目的地。你可以使用這種簡單的hook,比如說你可以測試對服務器多長時間的訪問是最有意義的。
好處十:你可以從HTML 和JSP訪問BlazeDS
你可以用不同的方式進行訪問,比如通過瀏覽器管理或者flashVars。flashVars可以通過HTML頁設置,然后通過Flex引用程序讀出。
舉個例子,比如你想要傳遞你的用戶名以及用戶類型,想要從HTML頁面上進行命令。你必須要在HTML頁設置flashVars,如下:
< object id='SodaSample' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab' height='100%' width='100%'>
< param name='src' value='SodaSample.swf'/>
< param name='flashVars' value='username=ryan&type=coke'/>
< embed name='mySwf' src='SodaSample.swf' pluginspage='http://www.adobe.com/go/getflashplayer' height='100%' width='100%' flashVars='username=ryan&type=coke'/>
< /object>
然后,在你的Flex應用程序中你可以通過應用程序參數讀出這些變數:
var username:String;
if (Application.application.parameters.hasOwnProperty("username")) {
username = Application.application.parameters.username;
}
好處十一:Flex 和BlazeDS的數據傳送比其它的Ajax解決方案好
默認情況下,所有的遠程程序調用(RPCs)在使用的時候運用的是AMF二進制協議。一個開放的標準,AMF極端的迅速。James Ward組成了一個整體樣本顯示與其他它遠程解決方案的對比。盡管其它的異步式JavaScript 和 XML (Ajax)解決方案,比如Dojo與幾個成百的隊列進行對抗,具有BlazeDS的Flex可以輕松的解決幾千個隊列。(James Ward為不同的RIA數據加載技術基準做的統計)
好處十二:你可以直接從Java 客戶端訪問BlazeDS
BlazeDS最新發布的版本包含一個Java AMF類,你可以使用它使得Java 客戶端訪問BlazeDS服務。這種訪問unit testing的方法在單元測試以及下載測試中都顯示極其有效。
好處十三:和Spring框架一起使用
Adobe 與 Spring框架的組合帶來兩個項目之間更緊密的結合,最初發布的Spring-BlazeDS整合就顯示了很多前景。通過允許Spring Bean成為遠程服務,完全一樣的配置文件將會被刪除。
【java程序員學習Flex和BlazeDS有什么好處】相關文章:
Java和Python有什么區別09-06
java和C++有什么區別09-05
java SE和EE有什么區別08-01
Java與Java web有什么不同08-26
java程序員的學習技巧07-02
java知識:JDK和JRE有什么區別08-08
OA有什么好處08-25
檸檬有什么好處07-18