將Flex與Spring集成框架
隨著富Internet應(yīng)用(RIA)技術(shù)的不斷成熟,將類似于Adobe Flex這樣的RIA應(yīng)用與健壯的服務(wù)器端技術(shù)進(jìn)行集成就變得越來越重要了。Java開發(fā)者最喜歡的服務(wù)器端框架之一Spring將在這個(gè)過程中扮演著重要的角色。
RIAvolutionize the Web的Marco Casario解釋到他為何建議BlazeDS成為Flex與Spring結(jié)合的企業(yè)系統(tǒng)時(shí)說道:“Spring是一個(gè)開源框架,可以讓開發(fā)人員開發(fā)起來更加輕松。如果使用標(biāo)準(zhǔn)的JEE方式,你需要編寫大量無用或者冗余的代碼,還可能花費(fèi)大量時(shí)間去實(shí)現(xiàn)J2EE的設(shè)計(jì)模式,而這些模式僅僅是為了應(yīng)對(duì)技術(shù)上的限制而不是真正的解決方案。Spring可以通過簡(jiǎn)化這些過程而節(jié)省大量時(shí)間?!?/P>
Christophe Coenraets解釋了Flex與Spring集成的基本原理:
Spring的控制反轉(zhuǎn)(Inversion of Control,即IoC)的主要思想就是讓容器實(shí)例化組件(并且注入其依賴)。但是在默認(rèn)情況下,由Flex客戶端遠(yuǎn)程訪問的組件是在服務(wù)器端由Flex目的文件實(shí)例化的。所以Flex與Spring集成的關(guān)鍵在于配置Flex目的文件以使其能夠讓Spring容器來管理實(shí)例化的Spring beans。Flex數(shù)據(jù)服務(wù)支持工廠的概念以便可以實(shí)例化這類客戶化組件。工廠的作用僅僅在于向Flex目的文件提供準(zhǔn)備好的組件實(shí)例,而不是讓 Flex目的文件自己去實(shí)例化這些組件。
關(guān)于Flex與Spring、IBATIS和Cairngorm的集成,Chris Giametta說道:
我相信可以創(chuàng)建一個(gè)一致的、模塊化的、可重用的架構(gòu)。這個(gè)架構(gòu)既可以支持小型應(yīng)用,也可以支持非常健壯的企業(yè)級(jí)應(yīng)用。項(xiàng)目成功的一個(gè)關(guān)鍵要素在于創(chuàng)建這樣一個(gè)架構(gòu):新人能迅速投入進(jìn)去,并且很快就能上手。我覺得將Flex與Spring、iBATIS和 Cairngorm集成可以幫助我迅速構(gòu)建出一個(gè)基于模式的、可重用的架構(gòu)。
Sébastien Arbogast在不遺余力地發(fā)表一系列博文,以闡述如何構(gòu)建全棧式Flex、BlazeDS和Spring集成解決方案。
Arbogast的這個(gè)全棧式集成,從下到上包括如下內(nèi)容:
◆JBoss作為應(yīng)用服務(wù)器
◆MySQL作為數(shù)據(jù)存儲(chǔ)
◆Hibernate完成數(shù)據(jù)訪問
◆Spring用來構(gòu)建業(yè)務(wù)層
◆BlazeDS作為遠(yuǎn)程服務(wù)
◆Flexe-genial用來構(gòu)建富客戶端。
該系統(tǒng)使用Maven及flex-compiler-mojo插件進(jìn)行構(gòu)建。
Arbogast說:“這個(gè)項(xiàng)目的建立當(dāng)然需要一些工作,但是——除去配置文件復(fù)制上的一些小問題外(而且這很快會(huì)得到改善)——它真的很干凈,而且flex-compiler-mojo也非常棒?!?/P>
【編輯推薦】