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

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

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

    e代劍客——溫柔一刀

    生活就像海洋,只有意志堅強的人,才能到達彼岸

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      76 隨筆 :: 7 文章 :: 215 評論 :: 0 Trackbacks
    作者注:在《Better, Faster, Lighter Java》一書第八章的這份節錄中,我們將看到一個使用Spring框架的企業web應用程序例子。盡管Hibernate提供了單個的服務,Spring框架卻提供了一種高效地構建和匯編Java應用程序的方法,以及多種服務的抽象。盡管Spring支持多種服務,但是它最受關注也是最出色的特性是杰出的分層和封裝。與EJB一樣,Spring的中心組件是一個容器;而且Spring框架也同樣提供對核心J2EE服務的訪問。但是這就是它們僅有的相似之處了。下面是一個比喻。

      我喜歡皮劃艇運動,也花了很多時間來教授皮劃艇技巧。我的一個專長就是教授學生如何在浪花中翻轉弄翻了的皮劃艇。一天,我向一位四肢發達的大個子和一位玲瓏瘦小、體重只有97磅的女士傳授該技巧。當我在陸地上從頭到尾仔細地講述這項技巧的時候,大個子直勾勾的盯著遠方,不感興趣。而那位女士注意力集中,而且希望反復練習這項基礎技巧。在半個小時之內,她就出色地完成了第一次翻轉,而他只是上下搖擺,在平靜的水面上拍打出細小的白色泡沫。直到第三個學時,他才完成這個動作。在以后的幾個學時中,她依靠技巧快速提高,而他卻單憑力量在水中掙扎。到了實踐的時候,她翻轉了皮劃艇,而他卻在游泳。程序員們,請記住:解決問題的最佳方式是依靠簡單性和技巧,而不是蠻力。

      Pet Store:一個反例

      Pet Store J2EE應用程序是一個很糟糕的編程例子。它誤導成千上萬名J2EE開發人員構建出設計糟糕、性能低下的代碼。它還是一個基準的爭論焦點。Middleware Company致力于制訂比較J2EE和微軟的。NET平臺的基準。他們選擇Pet Store的J2EE版本作為基準的基礎。盡管他們很努力地調優,J2EE版本還是慘敗給Microsoft .NET版本,因此導致J2EE設計備受批評。我不想針對這次慘敗譴責什么。我有不同的看法。我堅持認為:利用J2EE(尤其是EJB)很難開發出整潔、高性能的代碼。另一方面,Pet Store基準本身就會導致更大的問題。

      基準紛爭過后,很多人借助于更平易且更簡單的技術來實現Pet Store.其中一種最強大且最簡單的實現方法是Clinton Begin所使用的,他利用一個稱為iBatis的DAO框架來代替全部的實體bean.Rod Johnson的團隊將該應用程序轉化為Spring,并且現在已經與Spring框架一起發布。以下是相關的一些細節:

      Spring jPetStore應用程序包含在M4或更高版本的Spring中。
      它是一種具有JDBC DAO層的數據驅動的應用程序。
      它提供了Strut的替代前端以及Spring MVC框架。
      它提供了兩種不同的模型。最簡單的模型使用單一數據庫和簡單JDBC事務。另一種模型可以跨多個數據庫使用JTA事務管理。

      在下面的部分中,我將演示具有MVC web前端和單個數據庫中的簡單事務的應用程序版本。我將重點討論域模型、單數據庫DAO層、單一事務以及Spring MVC前端。Spring網站上提供了大量的資源,可供希望深入研究的開發人員使用。

      配置文件

      了解Spring應用程序應當從配置文件開始,它顯示了主要的bean以及應用程序如何將它們組合在一起。Spring配置文件在應用程序上下文中定義bean.將上下文看作是收集應用程序指定資源的一種便利方式。

      很多J2EE應用程序借助單元素來了解諸如連接之類的應用程序資源。這種用途的單元素與很多Java開發人員經常使用的全局變量差別不大。J2EE中的替代方案是一種稱為JNDI的目錄服務,但是對于許多常見用例來說它就是殺雞的牛刀了。而Spring使用一種應用程序上下文。最初,需要在一個簡單的XML文件中指定應用程序上下文,盡管也可以通過擴展Spring來接受其它類型的配置文件。以下是應用程序上下文中可能會包含的內容:

      數據源

      管理連接的Java類,通常在一個池中。

      DAO層

      如果應用程序使用了數據庫,那么很可能需要隔離對DAO層數據庫的訪問。可以通過應用程序上下文來訪問該層。

      持久性管理器

      每個持久性框架都有一個應用程序用來訪問其特性的對象或工廠。對于Hibernate來說,它就是會話和會話工廠。而對于JDO來說,它就是持久性管理器工廠和持久性管理器。

      事務策略

      可以顯式地聲明希望在事務中使用的方法以及用于實施該策略的事務管理器。

      事務管理器

      J2EE中有很多不同的事務管理策略。對于單一數據庫的應用程序,Spring允許使用數據庫的事務管理。對于多個數據庫或事務源,Spring允許使用JTA.可以將事務管理器保存在應用程序上下文中。

      驗證邏輯

      Spring框架使用一種與Strut類似的驗證框架。Spring允許像配置其他業務組件那樣配置驗證邏輯。

      視圖和控制器

      Spring框架允許為視圖指定控制器,并幫助用戶通過控制器來配置導航路徑。

      jPetStore應用程序使用包含一個數據源、DAO層和一種事務邏輯的Spring應用程序上下文。用戶定義XML文檔中上下文的內容,該XML文檔列出了一系列bean.每一個XML配置文件都包含一個題頭,其后是一系列組件和一個腳注。  以上是構成應用程序上下文的bean。它們代表應用程序中的頂級bean。(它們可以創建不出現在配置文件中的其他對象或bean。)在本例中,我們會創建兩個bean:MyFirstBean和MySecondBean。然后,通過指定MySecondBean作為字段myField的值,將它們關聯起來。當Spring啟動的時候,它會創建兩種對象,并設置myField的值。當在應用程序上下文中需要它們的時候,可以根據名稱來訪問這兩種對象。

      我們來看一個更具體的實例。jPetStore應用程序為業務邏輯、數據層和用戶界面提供了三種配置文件,每種Spring配置文件各自描述三者之一,如圖8-2所示。


    圖8-2 jPetStore應用程序提供了分別與三個不同的層相匹配的Spring應用程序上下文

    posted on 2006-07-13 22:51 溫柔一刀 閱讀(271) 評論(0)  編輯  收藏 所屬分類: 開源框架
    聯系偶 zhupanjava@gmail.com 溫柔一刀
    主站蜘蛛池模板: 久久亚洲中文字幕精品一区| CAOPORM国产精品视频免费| 亚洲精品乱码久久久久久蜜桃不卡| 99久久精品日本一区二区免费| 色吊丝最新永久免费观看网站 | 午夜小视频免费观看| 波多野结衣免费一区视频| 国产成人综合久久精品亚洲| 亚洲av永久无码精品三区在线4| 亚洲国产精品高清久久久| 四虎永久在线精品免费影视| 啦啦啦高清视频在线观看免费| 性xxxx视频免费播放直播| 中文字幕永久免费| 一区二区三区在线免费| 苍井空亚洲精品AA片在线播放| 亚洲国产精品综合久久20| 亚洲精品午夜久久久伊人| 亚洲AV无码专区在线播放中文| 亚洲最大av无码网址| 亚洲精品高清一二区久久| 国产成人免费全部网站| 四虎在线视频免费观看| 成年性生交大片免费看| 色窝窝免费一区二区三区| 久久国内免费视频| 青娱分类视频精品免费2| 久久国产免费福利永久| 97公开免费视频| 猫咪免费人成网站在线观看| 99热精品在线免费观看| 99re6热视频精品免费观看| 无码av免费网站| 88av免费观看入口在线| 久久成人国产精品免费软件| 1a级毛片免费观看| 日本成年免费网站| 日本高清免费不卡视频| 全部免费a级毛片| 久久亚洲AV无码西西人体| 黑人精品videos亚洲人|