av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

java語言

java程序員學(xué)習(xí)Flex和BlazeDS有什么好處

時間:2025-03-20 15:59:26 java語言 我要投稿
  • 相關(guān)推薦

java程序員學(xué)習(xí)Flex和BlazeDS有什么好處

java程序員學(xué)習(xí)Flex和BlazeDS有什么好處呢?看了下面的內(nèi)容你就得到答案了。更多內(nèi)容請關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!

java程序員學(xué)習(xí)Flex和BlazeDS有什么好處

  好處一:開源

  Flex軟件開發(fā)工具包核心(SDK)是開源架構(gòu),用以創(chuàng)建以及維護(hù)RIAs,不同瀏覽器和操作系統(tǒng)具有同樣的外觀設(shè)計風(fēng)格。Flex是在Mozilla公共許可證下發(fā)布的。經(jīng)過編譯的Flex應(yīng)用程序在私有的Adobe Flash平臺上運行。

  對于連接Flex 和Java,BlazeDS是為遠(yuǎn)程和信息服務(wù)的開源技術(shù)。它作為servlet運行在Java應(yīng)用程序服務(wù)器,允許你在任何Java web應(yīng)用程序規(guī)范中使用。BlazeDS是從Lesser GNU Public License (LGPL)得到的許可。除了BlazeDS的發(fā)布,Adobe公布了ActionScript信息格式說明(AMF),允許BlazeDS 和Java與Flex客戶端聯(lián)系使用二進(jìn)制格式。

  好處二:強(qiáng)大的社區(qū)支持

  Flex具有一個非;钴S的社區(qū),有很多有貢獻(xiàn)的主題。Flex.org,是一個關(guān)于Adobe的社區(qū)新聞?wù)军c,差不多每天都有更新,Yahoo! 上的Flex使用小組有超過11,000名成員。

  比如,Google 編碼上的FlexLib項目貢獻(xiàn)出大量的開源用戶界面(UI)組成部分。Swiz 和 Mate項目貢獻(xiàn)出一個架構(gòu)來幫助處理事件。Gorilla Logic已經(jīng)為自動化的UI測試貢獻(xiàn)出Flex Monkey。

  好處三:你可以在六個月內(nèi)得到一份工作

  根據(jù)Adobe的Flex教父James Ward的說法,市場對Flex高級工程師仍然有很大的需求。學(xué)習(xí)Flex能夠讓你掌握一門技術(shù),在競爭中處于優(yōu)勢地位。

  好處四:更高的商業(yè)投資回報率

  一般來說,開發(fā)企業(yè)級web應(yīng)用軟件是眾所周知的困難。Flex 和BlazeDS提供的不僅是更高級的工具,而且更容易擴(kuò)展。開發(fā)者生產(chǎn)力的增長允許市場上銷售的更多更快。Flex 和Flash創(chuàng)造了更完美的用戶體驗,提升了銷量以及價格。

  一個理想的例子是博德斯圖書連鎖店,它最近在介紹一種新的具有“Magic Shelf”的website。這個站點使用Flash界面來模擬翻書的感覺。博德斯書店發(fā)現(xiàn)這真的可以提高流通率:“使用這種Flash仿真界面,顧客可以查看圖書,DVD和 CD的封面,使用這一舉措比沒有體驗過的顧客多62%的購買率”

  好處五:Flex 是第一種用來設(shè)計UIs的語言

  很多設(shè)計語言都是在事后增加了創(chuàng)建UIs的支持功能。特別體現(xiàn)在Java Swing上。因此,Swing處理一些簡單事情,比如線路數(shù)據(jù),是非常痛苦的,要求使用特殊的Swing數(shù)據(jù)模型。Swing的最大問題是你不得不在應(yīng)用程序界面中挖掘很深才能有效。

  Flex恰恰相反:它一開始就是為創(chuàng)建web UIs而設(shè)計的。就像Bruce Eckel經(jīng)常說的那樣,F(xiàn)lex是第一款為UI設(shè)計的特定語言。所以使用Flex創(chuàng)建UI比使用其他方法要簡單,比如JavaServer Page(JSP),JavaServer Faces (JSF)以及Swing。數(shù)據(jù)綁定,事件句柄,元件布局還有其它的常見UI發(fā)展技術(shù)都可以被這種語言創(chuàng)建,甚至你僅僅掌握了一小部分語言知識就可以。

  好處六:擁有與Java類似的設(shè)計模型

  你可以使用現(xiàn)有的開發(fā)Java的工具進(jìn)行開發(fā)。你也可以使用包含在SDK中免費的命令行工具開發(fā)Flex應(yīng)用程序,通過Adobe Flex Builder(一個Eclipse插件)或者使用最近的IntelliJ IDEA 8。

  Flex提供一個狀態(tài)環(huán)境,數(shù)據(jù)可以加載到客戶端。編譯模型與Hypertext Markup Language (HTML)設(shè)計相比更像是編譯一個桌面客戶端,使得任何下載Java Swing設(shè)計的人都對編譯模型感到很熟悉。

  Flex編譯使用了一個MXML組合,一個UI markup語言,與可擴(kuò)展的Markup 語言 (XML)相似,還有Adobe ActionScript和面向?qū)ο蟮哪_本語言。這個組合使得編譯Flex與編譯Java相似,因為你可以使用概念非常熟悉的面向?qū)ο蟮姆绞健?/span>

  理想的方法是創(chuàng)建你的開發(fā)環(huán)境使得Flex應(yīng)用程序能夠在web開發(fā)地址錄中創(chuàng)建。使用這種方法,你不需要在每次創(chuàng)建后重新部署您的應(yīng)用程序:一個簡單的瀏覽器恢復(fù)功能,可以看到最后一次操作。結(jié)果是使用Flex 和BlazeDS開發(fā)相當(dāng)有效。

  好處七:BlazeDS可以在任何Java應(yīng)用服務(wù)器上運行

  BlazeDS的多個版本都是可以使用的,包括即將投入使用的包含Apache Tomcat設(shè)置的版本。在這篇文章中,我使用二進(jìn)制分布,作為web檔案(WAR),來顯示你在應(yīng)用服務(wù)器上如何進(jìn)行部署。否則你可以引用Java存檔(JAR)文件,在你的項目中使用。為了獲取各種各樣安裝BlazeDS的信息而訪問BlazeDS wiki。

  這個例子是在現(xiàn)有的項目上使用BlazeDS。你只需要在你的項目上增加JAR文件,然后你可以在應(yīng)用程序內(nèi)部使用BlazeDS,這允許你在任何可以部署應(yīng)用程序的地方部署它。

  在你的項目上增加BlazeDS,完整步驟如下:

  1、 找出包含BlazeDS WAR文件 jar xvf blazeds.war

  2、 復(fù)制JAR文件到你的項目lib目錄:cp -R WEB-INF/lib /sodaSample。

  好處八:可以在現(xiàn)有的Java應(yīng)用程序上使用

  再soda的例子中,假設(shè)你想要暴露現(xiàn)有的soda服務(wù)以便遠(yuǎn)程的Flex應(yīng)用程序可以與之鏈接。在現(xiàn)有的應(yīng)用程序上創(chuàng)建BlazeDS的基本步驟如下:

  1、 在WEB-INF/flex目錄下編輯BlazeDS配置文件。

  2、 在應(yīng)用程序上web.xml上規(guī)定MessageBrokerServlet 以及session listener。

  創(chuàng)建BlazeDS以后,你需要增加你的soda服務(wù)到BlazeDS遠(yuǎn)程配置文件,它允許從Flex 客戶端訪問soda服務(wù)。通過規(guī)定一個目的地以及一個或者更多的數(shù)據(jù)傳送渠道來實現(xiàn)添加;A(chǔ)的AMF渠道在服務(wù)器.xml文件中被定義。通過這個定義在遠(yuǎn)程config.xml 中識別你的目的地:

  < destination id="sodaService" channels="my-amf">

  < properties>

  < source>com.gorillalogic.sodaSample.SodaService< /source>

  < /properties>

  < /destination>

  通過在遠(yuǎn)程配置文件中定義端口,你可以從Flex客戶端訪問任何一個Java服務(wù)。

  傳遞Java數(shù)據(jù)模型到Flex客戶端,在你的腳本class中定義兩者之間的映射:

  [Bindable]

  [RemoteClass(alias="com.gorillalogic.sodaSample.SodaModel")]

  這段代碼顯示Flex,當(dāng)遠(yuǎn)程服務(wù)訪問返回Java SodaModel的結(jié)果把其映射到你的SodaModel。Flex客戶端的示例顯示如何訪問這個Java服務(wù)。訪問返回一個odaModel,根據(jù)你的命令:

  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從變化的結(jié)果中返回你的結(jié)果,映射到你的SodaModel上。我不在這里講述細(xì)節(jié),但是一個需要說的細(xì)節(jié)是在匯編配置中指定services-config.xml,像以下所寫:

  -locale en_US -services=/nsource/sodaSample/web/WEB-INF/flex/services-config.xml -context-root /

  如果不這樣,你的Flex客戶端將無法找到Java服務(wù)。同樣的方法,你可以從客戶端傳遞一個對象返還到服務(wù)。比如,你可以傳遞空的soda model返還到客戶端。

  好處九:你可以擴(kuò)展BlazeDS以及使用Java對其進(jìn)行修改

  假設(shè)你決定當(dāng)soda服務(wù)器被訪問的任何時候,要增加一個特別的logging。你可以擴(kuò)展Java編輯者的標(biāo)準(zhǔn)來增加logging。

  首先,增加Java類別擴(kuò)展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;

  }

  使用這種方法,你可以看見即將要進(jìn)行的操作以及訪問的目的地。你可以使用這種簡單的hook,比如說你可以測試對服務(wù)器多長時間的訪問是最有意義的。

  好處十:你可以從HTML 和JSP訪問BlazeDS

  你可以用不同的方式進(jìn)行訪問,比如通過瀏覽器管理或者flashVars。flashVars可以通過HTML頁設(shè)置,然后通過Flex引用程序讀出。

  舉個例子,比如你想要傳遞你的用戶名以及用戶類型,想要從HTML頁面上進(jìn)行命令。你必須要在HTML頁設(shè)置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應(yīng)用程序中你可以通過應(yīng)用程序參數(shù)讀出這些變數(shù):

  var username:String;

  if (Application.application.parameters.hasOwnProperty("username")) {

  username = Application.application.parameters.username;

  }

  好處十一:Flex 和BlazeDS的數(shù)據(jù)傳送比其它的Ajax解決方案好

  默認(rèn)情況下,所有的遠(yuǎn)程程序調(diào)用(RPCs)在使用的時候運用的是AMF二進(jìn)制協(xié)議。一個開放的標(biāo)準(zhǔn),AMF極端的迅速。James Ward組成了一個整體樣本顯示與其他它遠(yuǎn)程解決方案的對比。盡管其它的異步式JavaScript 和 XML (Ajax)解決方案,比如Dojo與幾個成百的隊列進(jìn)行對抗,具有BlazeDS的Flex可以輕松的解決幾千個隊列。(James Ward為不同的RIA數(shù)據(jù)加載技術(shù)基準(zhǔn)做的統(tǒng)計)

  好處十二:你可以直接從Java 客戶端訪問BlazeDS

  BlazeDS最新發(fā)布的版本包含一個Java AMF類,你可以使用它使得Java 客戶端訪問BlazeDS服務(wù)。這種訪問unit testing的方法在單元測試以及下載測試中都顯示極其有效。

  好處十三:和Spring框架一起使用

  Adobe 與 Spring框架的組合帶來兩個項目之間更緊密的結(jié)合,最初發(fā)布的Spring-BlazeDS整合就顯示了很多前景。通過允許Spring Bean成為遠(yuǎn)程服務(wù),完全一樣的配置文件將會被刪除。

【java程序員學(xué)習(xí)Flex和BlazeDS有什么好處】相關(guān)文章:

Java和Python有什么區(qū)別09-06

java和C++有什么區(qū)別09-05

java SE和EE有什么區(qū)別08-01

Java與Java web有什么不同08-26

java程序員的學(xué)習(xí)技巧07-02

JAVA中throws和throw有什么區(qū)別09-01

java知識:JDK和JRE有什么區(qū)別08-08

OA有什么好處08-25

檸檬有什么好處07-18