<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    讀書筆記——Flex與Spring && Flex與IOC框架

    Posted on 2009-09-30 11:49 Robert Su 閱讀(2020) 評論(1)  編輯  收藏 所屬分類: Java
    所讀文章
    常用Flex IOC框架比較分析  http://www.infoq.com/cn/articles/ioc-frameworks
    Flex 與 Spring 框架  http://www.riameeting.com
    Spring BlazeDS Integration簡介與入門 http://www.infoq.com/cn/articles/spring-blazeds-integration

    Spring與IOC現(xiàn)在是開發(fā)人員的常識了,IOC(Inversion of Control)也成為軟件開發(fā)中非常流行的一種設(shè)計模式。

    Spring的橫空出世完全顛覆了傳統(tǒng)Java服務(wù)端的開發(fā)方式。它鼓勵通過依賴注入的方式來裝配POJO,這極大地簡化了應(yīng)用的開發(fā)與測試。

    Spring的核心配置是通過Java bean實現(xiàn)的。借助于bean,任何Java類都能被公開成為服務(wù)。
    IoC是Spring的核心。IoC的作用:
    借助IOC,可用一個獨立的對象為其他對象的數(shù)據(jù)成員填充正確的實現(xiàn),而不是由這些對象自己負(fù)責(zé)此項工作。這樣做的好處有兩個。
    第一,可將對象的數(shù)據(jù)成員 聲明為接口,從而將對象與其具體實現(xiàn)分離(即契約式設(shè)計,design by contract)。
    第二,可從對象中刪除創(chuàng)建邏輯,可以使對象的用途更為明確。

    實現(xiàn):

    一般有兩種最常見的對象配置方法:

    • 對象實例化(例如:var myObject = new Object()
    • 對象查找(例如:var myObject = registry.getMyObject()

    而利用IOC,你可在一個獨立層中實例化應(yīng)用程序要用到的對象,并傳入它們所需的依賴。具體來說,最常見的實現(xiàn)方法也有兩種:

    • Setter注入(例如:instance.myObject = new Object()
    • Constructor注入(例如:instance = new Instance( new Object() )

    一個IOC框架,通常由如下三個部分組成:配置、工廠和注入機制。

    配置

    我們可以在配置中描述對象之間的關(guān)系。最常用的配置描述方法是在文件中聲明。這樣的文件有時候也被稱為上下文文件(context file)。也可以用元數(shù)據(jù)/注釋(metadata/annotation),甚至直接在程序中描述配置。/

    工廠

    工廠負(fù)責(zé)配置的解析和所有對象的準(zhǔn)備工作,程序一旦運行,就可以根據(jù)需要取得這些對象。

    在經(jīng)典的Spring框架(最流行的Java IOC框架)中,所有對象(我稱其為客戶對象)都由IOC容器負(fù)責(zé)準(zhǔn)備,并且它們以接口形式聲明自己的依賴。在配置文件中,被聲明的依賴都被設(shè)置為對應(yīng)的實現(xiàn)類。

    注入機制

    所謂注入機制,是指如何將工廠創(chuàng)建的對象實例注入到應(yīng)用或其他對象。

    就Spring Web應(yīng)用而言,注入方法是通過web.xml來實現(xiàn)的。Spring會監(jiān)聽Web應(yīng)用上下文的加載事件,并利用鉤子捕獲類加載器的行為,從而分離出任何 需被創(chuàng)建的對象。此后,若有需要,工廠將實例化對象,并填充它所需的依賴。當(dāng)然在向應(yīng)用返回對象之前,這些依賴本身也可能需要實例化。這個過程即所謂的 “(將依賴與對象)捆綁在一起”。

    在Flex中,類的加載原理有所不同,因此捆綁方法也就不同。目前有兩種方法:

    • 客戶對象直接從工廠請求(已捆綁好的)對象
    • 利用內(nèi)置的Flex事件機制(用于實例化視圖)觸發(fā)注入

    看了一些文章之后發(fā)現(xiàn)還是不能夠很好的了解Flex IOC框架比如spring Actionscript與Spring BlazeDS Integeration 到底有何不同。
    到spring官方網(wǎng)站一看究竟,目前Spring官方網(wǎng)站上有兩個項目:
    Spring BlazeDS Integration
    Spring Ationscript

    這兩個項目讓你在客戶端的Actionscript編碼中以及服務(wù)端的Java編碼中,都能夠使用Spring的各種優(yōu)秀特性。

    兩者的不容之處在于

    Spring BlazeDS Integeration 允許你在服務(wù)端使用Spring容器來組織你的代碼,維護的你代碼依賴。并且,把你的服務(wù)通過相應(yīng)的配置暴露給客戶端。

    Spring Actionscript則是一個基于Actionscript代碼的Ioc容器(目前還不支持AOP).可以讓你在客戶端使用Ioc管理依賴注入.


    下面分別看下,首先來探討下Spring Actionscript以及其它的IoC框架。



    Spring ActionScript

    • 框架:Spring ActionScript
    • 網(wǎng)站:http://www.herrodius.com/blog/

    • 開發(fā)者:Christophe Herreman
    • 版本:0.71
    • 許可:開源
    • 配置:XML

    Spring ActionScript前身為Prana,因其成熟度高,成為了一個知名框架。

    核心概念

    任何使用過Spring的Java或.NET版本的人,都會很快熟悉Spring ActionScript。你在運行時加載的配置文件,可以給工廠提供足夠信息,用于實例化被應(yīng)用請求的任何對象。

    基本配置

    在標(biāo)準(zhǔn)例子工程中使用Spring ActionScript,需如下三個基本步驟:

    1. 創(chuàng)建文件application-context.xml
    2. 初始化應(yīng)用中的工廠對象
    3. 在你的視圖層(或其他任何地方),根據(jù)需要從工廠獲得對象以供使用

    對象工廠和對象配置

    在Spring ActionScript中,對象聲明在應(yīng)用可訪問的XML文件(通常命名為application-context.xml)中。此配置文件由XMLApplicationContext(是ObjectFactory的子類)加載。


    Spring ActionScript是一個優(yōu)秀的、成熟的、開發(fā)活動十分活躍的IOC框架,任何用過Spring框架的人都熟悉的。

    以XML形式聲明對象存在一個問題,即在XML中聲明一個類,并且這個類沒被包含在SWF中(因為在你的應(yīng)用中沒有對它的直接引用)時,F(xiàn)lash Player會在運行時拋出異常。其解決辦法是創(chuàng)建一個ActionScript類,聲明它對上下文XML的依賴,并將此類包含在應(yīng)用中。


    Parsley

    • 框架:Parsley
    • 網(wǎng)站:http://www.spicefactory.org/
    • 開發(fā)者:Jens Halm
    • 版本:2.0.0
    • 許可:開源
    • 配置:XML/MXML/ActionScript

    Parsley也是一個成熟的IOC框架,最初靈感來源于Spring。它近期經(jīng)歷過一次較大規(guī)模的重寫。新版本支持一些本地Flex特性,如綁定和元數(shù)據(jù),使你在配置你的工程時有更多更好的選擇。

    核心概念

    Parsley的核心概念是源自于Spring的上下文,也即應(yīng)用的依賴注入的配置。

    Parsley的配置現(xiàn)在支持多種形式,其中包括XML和MXML。你可以使用本地的MXML標(biāo)記或Parsley庫提供的自定義MXML標(biāo)簽。Parsley使用元數(shù)據(jù)標(biāo)簽實現(xiàn)對注入機制的支持,這和Swiz框架是類似的。

    Parsley還支持消息模式。基本不需代碼干預(yù),你就能將你的對象配置為事件源或事件處理器。在這個例子中,我會用這個特性替代Controller模式。

    基本配置

    Parsley的配置分三個基本步驟:

    1. 創(chuàng)建Config.mxml文件。
    2. 在應(yīng)用的根部初始化一個Context對象。
    3. 在你的視圖中,用Inject元數(shù)據(jù)實現(xiàn)依賴的注入。

    準(zhǔn)備配置文件的方法有多種,不過在這個例子中,我使用支持本地標(biāo)記和Parsley標(biāo)簽的MXML文件。這種方法的好處是在編譯時就將類引入,當(dāng)然這樣一來,也就不能直接修改已被編譯的應(yīng)用的配置了。

    對象工廠和對象配置

    在Config.mxml中,你能看到應(yīng)用中用到的從域模型到代理的所有對象。聲明這些對象的方式有兩種:

    1. 標(biāo)準(zhǔn)的MXML
    2. 使用Parsley的對象定義標(biāo)簽

    在后面的內(nèi)容中,我將詳細(xì)介紹這種方法。

    總結(jié)

    經(jīng)過其他一些框架的不斷啟發(fā),新版本的Parsley已發(fā)展成為一個完整的IOC框架。它還支持模塊式開發(fā)和上下文卸載。在模塊化Flex應(yīng)用開發(fā)日益盛行的今天,這無疑是一個十分重要的特性


    Spring BlazeDS Integration
    其目標(biāo)是:開發(fā)者可以利用Spring開發(fā)模型通過Adobe Flex、BlazeDS、Spring以及Java技術(shù)創(chuàng)建RIA。這樣我們就可以通過BlazeDS公開Spring管理的服務(wù)而無需額外的配置文 件。其優(yōu)勢在于將Spring的易用性與Flex、BlazeDS以及Java整合起來以共同創(chuàng)建應(yīng)用。
    Spring的核心配置是通過Java bean實現(xiàn)的。借助于bean,任何Java類都能被公開成為服務(wù)。

    為了將這些bean公開成為Flex客戶端所用的遠程服務(wù),Integration項目采用了Spring Web MVC。Spring Web MVC將DispatcherServlet作為一個中央分發(fā)器,用以處理任何類型的HTTP請求或是基于HTTP的遠程服務(wù)。我們可以通過相同的 JavaBean配置方式來配置該DispatcherServlet以將請求轉(zhuǎn)發(fā)給相應(yīng)的處理器進行后續(xù)處理。


    Feedback

    # re: 讀書筆記——Flex與Spring && Flex與IOC框架  回復(fù)  更多評論   

    2009-10-03 12:47 by 羅萊家紡
    新版本的Parsley已發(fā)展成為一個完整的IOC框架。它還支持模塊式開發(fā)和上下文卸載

    posts - 103, comments - 104, trackbacks - 0, articles - 5

    Copyright © Robert Su

    主站蜘蛛池模板: 中文字幕免费观看视频| 人成电影网在线观看免费| 伊人久久免费视频| 亚洲成AV人片在线观看| 18禁超污无遮挡无码免费网站| 在线观看亚洲天天一三视| a级毛片免费高清视频| 亚洲中文字幕无码久久精品1| 久久精品免费大片国产大片| 久久夜色精品国产亚洲av| 国产人成网在线播放VA免费| 久久亚洲中文字幕精品一区| 国产精品网站在线观看免费传媒| 亚洲高清国产拍精品26U| 99热免费在线观看| 亚洲一级免费毛片| 免费特级黄毛片在线成人观看 | 在线视频免费观看www动漫| 亚洲欧美国产欧美色欲| 国产yw855.c免费视频| 一级一级一级毛片免费毛片| 久久精品国产69国产精品亚洲| 午夜精品一区二区三区免费视频| 亚洲午夜久久久精品电影院| 永久免费视频v片www| 一区二区三区免费在线视频 | 亚洲免费在线视频播放| 午夜dj在线观看免费视频| 免费人成再在线观看网站 | 亚洲日本在线免费观看| 日韩人妻无码免费视频一区二区三区 | 久久久99精品免费观看| 亚洲av无码一区二区三区天堂古代 | 亚洲精品视频免费观看| 一个人看的hd免费视频| 久久精品国产亚洲AV麻豆~| 日韩精品成人无码专区免费| 日本特黄特色AAA大片免费| 亚洲精品成人av在线| 在线视频免费观看www动漫| 91免费国产视频|