Tempo

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            1 Posts :: 6 Stories :: 0 Comments :: 0 Trackbacks

          1、使用ActionSupport(示例下載 )


          ?????? org.springframework.web.struts.ActionSupport 類提供了一個getWebApplicationContext() 方法,可用于手動創(chuàng)建一個 Spring 環(huán)境。

          ?????? 這種方式很簡單并且易于理解。但將 Struts Action與 Spring 框架耦合在一起。如果想替換掉 Spring,那么必須重寫代碼。 并且,由于 Struts Action不在 Spring 的控制之下,所以它不能獲得 Spring AOP 的優(yōu)勢。當使用多重獨立的 Spring 環(huán)境時,這種方式可能有用, 但是在大多數(shù)情況下,這種方法不如另外兩種方法合適。

          ?


          2、覆蓋 RequestProcessor (示例下載 )


          ?????? 使用 org.springframework.web.struts.DelegatingRequestProcessor 類來覆蓋 Struts
          的 RequestProcessor 處理程序,可將 Spring 從 Struts Action 中分離出來。在struts-config中的配置如下:

          <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/> 
          <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
            <set-property property="csntextConfigLocation" value="/WEB-INF/beans.xml"/>
          </plug-in>

          ?????? 優(yōu)點是由于 Struts Action 注意不到 Spring 的存在,所以不需要重寫 Struts 代碼就可以使用其他控制反轉容器來替換掉 Spring。

          ?

          ?

          3、將Action管理委托給Spring (示例下載 )


          ?????? 通過在struts-config中注冊Action時使用org.springframework.web.struts.DelegatingActionProxy類來實現(xiàn),該方式的優(yōu)點如下:
          ???????????? a):沒有 Spring 的話,所有的 Struts 動作都必須是線程安全的。如果設置 <bean> 標記的 singleton 屬性?? 為“false”,那么不管用何種方法,應用程序都將在每一個請求上有一個新生成的動作對象。
          ???????????? b):可以利用 Spring 的生命周期方法。例如,當實例化 Struts 動作時,<bean> 標記的 init-method 屬性 被用于運行一個方法。類似地,在從容器中刪除 bean 之前,destroy-method 屬性執(zhí)行一個方法。這些方法是管理昂貴對象的好辦法,它們以一種與 Servlet 生命周期相同的方式進行管理。
          ????????????? c):Struts Action不了解 Spring,不對代碼作任何改變就可用于非 Spring 應用程序中。RequestProcessor 的改變不會影響它,并且它可以利用 Spring AOP 特性的優(yōu)點。



          已有 0 人發(fā)表留言,猛擊->>這里<<-參與討論


          JavaEye推薦




          文章來源:http://complex.javaeye.com/blog/611042
          posted on 2010-03-09 11:05 Tempo 閱讀(163) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 隆安县| 赫章县| 清新县| 浙江省| 棋牌| 会东县| 弋阳县| 富顺县| 睢宁县| 长垣县| 镇巴县| 沂水县| 瑞金市| 泰和县| 桐乡市| 浙江省| 新竹县| 奇台县| 吴旗县| 班戈县| 资阳市| 綦江县| 仪陇县| 苍山县| 长治县| 定结县| 仁寿县| 佳木斯市| 肃南| 民县| 旬阳县| 洞头县| 苍溪县| 营口市| 庆阳市| 太仓市| 桐城市| 通河县| 依兰县| 巴林右旗| 高密市|