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

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

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

    Java-Android-jwebee
    Java-Android-jwebee
    對(duì)IT人來(lái)說(shuō),要成為一個(gè)優(yōu)秀的技術(shù)型管理者,除了需要具備扎實(shí)的技術(shù)基礎(chǔ)之外,還應(yīng)該培養(yǎng)良好的人際關(guān)系能力、談判與溝通技能、客戶關(guān)系與咨詢技能、商業(yè)頭腦和財(cái)務(wù)技能以及創(chuàng)新意識(shí),此外還要有巧妙的激勵(lì)技巧和化解沖突與解決突發(fā)問(wèn)題的能力.
    Java EE 5.0能取代Struts,Spring和Hibernate嗎?
    ?
    作者 :?Allen 文章來(lái)源 :?www.operamasks.org

    ???????? 2006 5 月, Java EE 5 規(guī)范正式發(fā)布。 Java EE 5 的出現(xiàn),可能是 J2EE 誕生以來(lái)比較重量級(jí)的一次震撼 ,規(guī)范發(fā)布至今已有半年之多,業(yè)界對(duì) Java EE 5 的關(guān)注也變得越來(lái)越熱烈, google 一下“ java ee ”關(guān)鍵字,可以得到 500 多萬(wàn)條相關(guān)紀(jì)錄,而從 Sun 網(wǎng)站上進(jìn)行檢索( http://java.sun.com/javaee/overview/compatibility.jsp ),也可以看到專業(yè)廠商已經(jīng)迅速跟進(jìn),除 Sun 公司本身外,包括全球聞名的 SAP 、金蝶 Apusic 等另三家,已經(jīng)推出全面支持 Java EE 5 規(guī)范的應(yīng)用服務(wù)器產(chǎn)品。 ??

    Java EE 5 包含 JSF 1.2 EJB 3.0 JAX-WS 2.0 等新功能,試圖解決 Java 企業(yè)級(jí)應(yīng)用開(kāi)發(fā)的簡(jiǎn)便性、靈活性及易用性問(wèn)題。在 Java EE 5 出現(xiàn)之前,很多開(kāi)源框架( Open Source Framework )如雨后春筍般涌現(xiàn),嘗試從某種角度或某些方面去解決“委員會(huì)”規(guī)范所未能顧及的應(yīng)用開(kāi)發(fā)問(wèn)題,如 Web 開(kāi)發(fā)中的關(guān)注分離問(wèn)題( MVC )、業(yè)務(wù)模型實(shí)現(xiàn)問(wèn)題( ORM )等等。很多開(kāi)源 framework 都非常出名,為人們喜愛(ài)并廣泛使用,如 Struts Spring Hibernate 等,這些“江湖派”作品曾經(jīng)一定程度上成為 Java 企業(yè)級(jí)應(yīng)用開(kāi)發(fā)事實(shí)上的標(biāo)準(zhǔn)。 Java EE 5 的出現(xiàn),是否會(huì)改變這種狀況?或者說(shuō),人們?cè)谥匦逻x擇應(yīng)用框架時(shí),是否會(huì)優(yōu)先考慮全新的 Java EE 5 技術(shù)?帶著這種疑問(wèn),筆者試圖進(jìn)行簡(jiǎn)單的技術(shù)比較,并輔于膚淺的評(píng)論,希望能夠拋磚引玉、借花獻(xiàn)佛,以?shī)蚀蟊姟?/span>

    ?

    Struts vs. JSF

    ?

    ?

    Struts

    JSF

    MVC

    支持

    支持

    POJO

    ?

    支持

    頁(yè)面流( Page Flow

    支持

    支持

    UI 組件( UI Component

    ?

    支持

    ?

    MVC 是模型( Model )、視圖( View )、控制( Controller )分層的結(jié)構(gòu),通過(guò)分層來(lái)實(shí)現(xiàn)關(guān)注分離,減少傳統(tǒng)開(kāi)發(fā)中常見(jiàn)并重復(fù)的工作。 Struts JSF 均支持 MVC Struts 對(duì) MVC 支持的核心是 Controller ,通過(guò) Controller (一個(gè)共同的入口 Servlet )獲得 HTTP 請(qǐng)求,將 HTTP 參數(shù)傳入 ActionForm ,然后將 ActionForm 傳給 Action Struts 對(duì) HTTP 請(qǐng)求只有一個(gè)事件處理 handler ,當(dāng)請(qǐng)求過(guò)來(lái)時(shí),由相應(yīng) Action 返回結(jié)果給前端 Controller ,并據(jù)此選擇如何進(jìn)行導(dǎo)航。 JSF 一般也采用一個(gè)前端 Controller (有些商用 JSF 能夠智能識(shí)別 JSF 請(qǐng)求,無(wú)需額外的 controller ),不過(guò)在 Controller 中做的工作跟 Struts Controller 截然不同,它負(fù)責(zé)觸發(fā) JSF 頁(yè)面組件中的事件,用 Render 工具生成組件的展現(xiàn),綁定來(lái)自 Model 的數(shù)據(jù)到組件等。可以看到, JSF 在在控制層更靈活,在視圖層支持 Render 工具的變換而生成靈活的展現(xiàn),在模型層實(shí)現(xiàn)與框架的徹底分離,因而具有更高的靈活性。 ?

    ?

    POJO 是無(wú)格式 Java 對(duì)象( Plain Old Java Object )。 POJO AOP 結(jié)合被廣泛用于快速業(yè)務(wù)模型。 Struts 設(shè)計(jì)的初衷主要是解決視圖和控制問(wèn)題,并無(wú)過(guò)多關(guān)注模型的靈活性問(wèn)題。 Struts 中的 ActionForm 模型必須繼承自框架類,雖然可以通過(guò)定制類庫(kù)提供一些幫助類實(shí)現(xiàn)模型與框架無(wú)關(guān),但本質(zhì)上還是緊耦合于 JSP- and HTTP-centric 方法 JSF 提供了對(duì) POJO 天然的良好支持,并支持通過(guò) RAD 工具實(shí)現(xiàn)快速的業(yè)務(wù)模型生成,從而具有更高的生產(chǎn)力。

    ?

    頁(yè)面導(dǎo)航的最大意義是幫助實(shí)現(xiàn)頁(yè)面的可視化開(kāi)發(fā),在 UI 界面上快速定義頁(yè)面流向。頁(yè)面導(dǎo)航分靜態(tài)導(dǎo)航和動(dòng)態(tài)導(dǎo)航兩種,靜態(tài)導(dǎo)航是頁(yè)面直接流向另一頁(yè)面,動(dòng)態(tài)導(dǎo)航是由特定動(dòng)作或邏輯決定頁(yè)面的流向。 Struts JSF 均支持靜態(tài)和動(dòng)態(tài)頁(yè)面導(dǎo)航。不過(guò) Struts 中的導(dǎo)航規(guī)則是綁定到 Action 中的,那意味著可能需要對(duì)同一頁(yè)面中不同的 Action 做重復(fù)性的導(dǎo)航規(guī)則制定,而 JSF 導(dǎo)航可以跟 Action 無(wú)關(guān),可以在頁(yè)面中不同組件的不同 Action 間共享相同的導(dǎo)航規(guī)則。

    ?

    Struts 本身并不提供 UI 組件機(jī)制,而 JSF 則提供了完整的 UI 組件機(jī)制。通過(guò) UI 組件的定制和重用,能夠極大地簡(jiǎn)化開(kāi)發(fā),提升用戶體驗(yàn)。商業(yè)化的產(chǎn)品則往往更進(jìn)一步,提供強(qiáng)大易用的開(kāi)發(fā)工具,實(shí)現(xiàn) drag-and-drop 方式所見(jiàn)即所得的 Web UI 開(kāi)發(fā)。

    ?

    Spring vs. EJB 3.0

    ?

    ?

    ?

    Spring

    EJB3

    標(biāo)準(zhǔn)( Standard

    ?

    是, Java EE 5 標(biāo)準(zhǔn)組成部分

    持久( Persistence

    JDBC, Hibernate, JDO, iBatis and JPA ongoing spring 2.0

    JPA

    聲明式服務(wù)( Declarative Services

    支持

    支持

    依賴注入( Dependency Injection

    支持

    支持

    集群( Cluster

    ?

    支持

    ?

    Spring 框架是一個(gè)開(kāi)源項(xiàng)目,并不是一個(gè)標(biāo)準(zhǔn)的東西。 Spring 自己定義了一套 XML 配置文件大綱以及程序接口,從長(zhǎng)遠(yuǎn)考慮,有很大的不確定性。 Spring 的主要開(kāi)發(fā)者來(lái)自 Interface21 公司(這是幫我非常敬重的人), Interface21 靠相關(guān)咨詢和服務(wù)維持,作為一個(gè)商業(yè)團(tuán)體其利益取向?qū)⒖梢酝耆笥?/span> Spring 未來(lái)的方向。相比 EJB 3 出身名門正派的標(biāo)準(zhǔn)血統(tǒng)并有眾多主流商業(yè)廠商支持, Spring 的非標(biāo)準(zhǔn)性將可能帶來(lái)極大的風(fēng)險(xiǎn)。

    ?

    Spring 框架本身不帶持久實(shí)現(xiàn),但它支持 JDBC, Hibernate, JDO iBatis 等持久化框架。 Spring 通過(guò)使用不同的 DAO Helper 類以利用 JDBC Hibernate iBatis JDO ,所以并沒(méi)有實(shí)現(xiàn)和最終服務(wù)提供者的隔離。簡(jiǎn)單來(lái)說(shuō),就是需要重構(gòu)代碼才能實(shí)現(xiàn)持久化框架的更換。 EJB 3.0 的持久集成在應(yīng)用服務(wù)中,通過(guò) JPA ,可以在底層更換持久實(shí)現(xiàn),如將 Hibernate 更換為 Toplink EJB 3.0 的持久具有更大的靈活性,并有利于廠商進(jìn)行性能優(yōu)化和擴(kuò)展。

    ?

    Spring EJB3.0 都為企業(yè)應(yīng)用提供運(yùn)行時(shí)服務(wù),(如:事務(wù)、安全、日志消息、配置服務(wù))。由于這些服務(wù)都不是直接與應(yīng)用的業(yè)務(wù)邏輯相關(guān)聯(lián),所以都不是由應(yīng)用來(lái)自行管理。 EJB3.0 使用 Java 注釋來(lái)配置聲明式服務(wù), Spring 使用 XML 配置文件。在大多數(shù)情況下, EJB3.0 的注釋聲明顯得更為簡(jiǎn)單和優(yōu)雅。 Spring 使用 XML 來(lái)定義屬性并配置聲明式服務(wù)的結(jié)果將是一個(gè)冗長(zhǎng)而不穩(wěn)定的配置文件。

    ?

    依賴注入模式( DI )是在應(yīng)用中實(shí)現(xiàn)松散耦合的最佳實(shí)踐。 Spring EJB3.0 都支持 DI 模式,但他們有著深刻的不同。 Spring 支持通用的(但復(fù)雜的)基于 XML 配置文件的依賴注入 API EJB3.0 支持注入大多數(shù)服務(wù)對(duì)象(如 EJB 和上下文對(duì)象)和通過(guò)簡(jiǎn)單注釋聲明的 JNDI 對(duì)象。

    ?

    EJB 3.0 完全支持集群。部署在服務(wù)集群中的 EJB3.0 應(yīng)用將自動(dòng)獲得負(fù)載均衡、分布緩存、狀態(tài)復(fù)制等功能。底層的集群服務(wù)隱藏在 EJB3.0 編程接口后面,屏蔽了所有的復(fù)雜性。 Spring 沒(méi)有簡(jiǎn)單的利用集群的方法。

    ?

    Hibernate vs. EJB 3.0 ?

    ?

    Hibernate EJB 3.0 其實(shí)并沒(méi)有很好的可比性,因 Hibernate 僅關(guān)注 ORM ,而 ??? EJB 3.0 更多則更多表現(xiàn)為一種組件框架,其中包含 ORM 部分而已。 EJB 3.0 在設(shè)計(jì)過(guò)程中,曾經(jīng)得益于 Hibernate 的作者 Gavin King ,據(jù)說(shuō) EJB 3.0 EntityBean 的設(shè)計(jì)理念完全來(lái)自于 Hibernate 。只需用將 EJB 3.0 EntityBean API 調(diào)用轉(zhuǎn)換為 Hibernate API Hibernate 就可以成為 EJB 3.0 EntityBean Implementation ? ?

    ?

    當(dāng)開(kāi)源 framework 已經(jīng)成為習(xí)慣性勢(shì)力,并給人們帶來(lái)眾多樂(lè)趣或疲憊感的時(shí)候, Java EE 5 的出現(xiàn)會(huì)是適逢其時(shí)嗎?無(wú)論如何,是繼續(xù)選擇開(kāi)源還是擁抱 Java EE 5 ?相信今天這并不是個(gè)容易的選擇,或許,隨著更多的廠商發(fā)布支持 Java EE 5 的產(chǎn)品,提供更好的工具支持,這個(gè)答案才會(huì)明朗起來(lái)。



    jwebee

    我的個(gè)人網(wǎng)站
    posted on 2007-01-05 18:29 周行 閱讀(357) 評(píng)論(0)  編輯  收藏 所屬分類: 評(píng)論
    Java-Android-jwebee
    主站蜘蛛池模板: 日韩免费电影在线观看| 高清免费久久午夜精品| a级毛片免费观看网站| 中文字幕在线免费观看| 免费无码黄动漫在线观看| 成人网站免费观看| 嫩草影院免费观看| 亚洲综合色自拍一区| 亚洲另类图片另类电影| 成在线人视频免费视频| 东方aⅴ免费观看久久av| 国内精品久久久久影院免费| 久久爰www免费人成| 国产成人啪精品视频免费网| 亚洲AV无码乱码在线观看裸奔| 亚洲AV无码一区二区三区系列| 亚洲欧美日韩中文字幕一区二区三区 | 色在线亚洲视频www| 成年女人A毛片免费视频| 精品熟女少妇AV免费观看| 久久久久噜噜噜亚洲熟女综合| 亚洲国产精品一区二区第一页| 久久亚洲熟女cc98cm| 一道本不卡免费视频| 两个人看的www高清免费视频| 成人黄18免费视频| 久久丫精品国产亚洲av| 亚洲乱码卡三乱码新区| 中文字幕看片在线a免费| 日韩免费无码一区二区视频| 亚洲欧洲国产精品久久| 色www永久免费| 免费人成视频x8x8入口| 国产精品亚洲综合久久| 美女视频黄.免费网址| 两个人看www免费视频| 亚洲精品视频在线看| 久久久久亚洲AV成人无码网站| 精品亚洲456在线播放| 91成人在线免费视频| 国产精品久久久亚洲|