posts - 7,  comments - 58,  trackbacks - 0
          struts與hibernate集成開發(fā)
          最近學(xué)習(xí)struts與hibernate相關(guān)知識,下面是個(gè)人對struts與hibernate集成開發(fā)的一些見解,寫出來跟大家共同討論、學(xué)習(xí),歡迎指教。
           要集成struts與hibernate進(jìn)行開發(fā),首先應(yīng)該了解一下struts和hibernate框架各自的工作原理和模式般的開發(fā)流程。
          首先介紹struts的大概工作流程,下面通過一張struts工作的時(shí)序圖來說明其工作流程:

          Struts工作流程分析:
          1)Web服務(wù)器啟動(dòng),初始化ActionServlet,讀取struts-config.xml文件配置信息,把這些信息分發(fā)到相應(yīng)的對象中。
          2)用戶發(fā)出請求后,ActionServlet接收到請求,查找與請求匹配的Action映射對象(ActionMapping)對象是否存在,是:將請求以及Actionform對象傳遞給相應(yīng)的Action對象。
          3)Action調(diào)用業(yè)務(wù)邏輯服務(wù)接口,結(jié)合ActionForm,對用戶的請求做出處理。
          4)Action處理完畢返回ActionForward對象給ActionServlet。ActionForward對象包含了轉(zhuǎn)發(fā)目標(biāo)對象,可以是jsp或Action。
          5)ActionServlet根據(jù)ActionForward對象的指向繼續(xù)轉(zhuǎn)發(fā)請求,重復(fù)從第2步進(jìn)行處理。
          至此,我們對struts 的基本工作流程有個(gè)整體的認(rèn)識,但還沒提hibernate相關(guān)的任何知識,業(yè)務(wù)邏輯層也只是在第3)點(diǎn)微提一下。

          接下來,我們來看下hibernate是怎樣工作的?(注:在這不是討論ORM的實(shí)現(xiàn),只討論怎讓hibernate這ORM中間件工作)
          Hibernate是個(gè)獨(dú)立的框架,它不依賴任何的Web Server或Application Server,就是說不需要這些支持。
          Hibernate有五個(gè)核心接口,分別為Configuratoin, SessionFactory, Session,Query及Criteria。通過這些接口就可以完成hibernate的初始化,對持久化對象進(jìn)行存取,更新等操作。
          下面簡要介始一下這些接口。
          1、Configuration接口 是Hibernate應(yīng)用的入口,在開始使用Hibernate的各種功能之前需要先創(chuàng)建Configuration對象。它負(fù)責(zé)加載Hibernate 應(yīng)用配置文件,如Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");
          2、SessionFactory接口 緩存了Configuration對象所包含的配置信息,能根據(jù)映射信息自動(dòng)生成SQL語句,并提供生成Session對象的方法。
          3、Session接口提供一系列持久化的操作。
          到此,可以寫一小段代碼來加看下如何使用hibernate
          Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");//配置文件不在此作介紹
          SessionFactory sessionFactory = cf.buildSessionFactory();
          Session session = sessionFactory.openSession();
          session.update();
          session.save();等等持久化操作。
          至此,簡單介紹了hibernate 是怎樣工作的,其實(shí)我只想讓你清楚:“Hibernate是個(gè)獨(dú)立的框架,它不依賴任何的Web Server或Application Server,就是說不需要這些支持。”

          那么,我們要回到主題來:如何集成struts與hibernate開發(fā)?答案很簡單:hibernate和struts本質(zhì)上是沒什么聯(lián)系的,只要你記住:Hibernate是個(gè)獨(dú)立的框架,它不依賴任何的Web Server或Application Server。用DAO模式把hibernate持久化的操作封裝好,供業(yè)務(wù)邏輯服務(wù)類調(diào)用就可以。回過頭來看struts工作流時(shí)序圖的解釋的第三點(diǎn):“3)Action調(diào)用業(yè)務(wù)邏輯服務(wù)接口,結(jié)合ActionForm,對用戶的請求做出處理。”,不難得出:
          用戶請求后,struts負(fù)責(zé)找到相應(yīng)的Action對象,Action調(diào)用業(yè)務(wù)邏輯服務(wù)接口,業(yè)務(wù)邏輯服務(wù)接口調(diào)用DAO接口(這里默認(rèn)的實(shí)現(xiàn)就用hibernate,當(dāng)然, 還可以有多種對數(shù)據(jù)庫操作的實(shí)現(xiàn))
          hibernate充當(dāng)下面這張圖中的"持久層(DAO)"


          由于本人對struts及hibernate認(rèn)識不深,寫這篇文章只是拋磚引玉,希望高手們發(fā)表意見指正錯(cuò)誤,多指教。





          posted on 2008-02-29 18:44 Sonny Li 閱讀(1002) 評論(0)  編輯  收藏 所屬分類: 框架相關(guān)

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


          網(wǎng)站導(dǎo)航:
           
          <2008年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          2425262728291
          2345678

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          收藏夾

          博客好友

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 兰考县| 杨浦区| 滨海县| 连州市| 武平县| 波密县| 彰武县| 荥阳市| 湖南省| 乌什县| 东乌| 林甸县| 遂宁市| 固安县| 中宁县| 钟山县| 民权县| 如东县| 丰宁| 金沙县| 望江县| 体育| 寿光市| 沙河市| 京山县| 抚宁县| 安阳县| 横山县| 景德镇市| 肃宁县| 望城县| 湄潭县| 壶关县| 双城市| 南部县| 镇康县| 太白县| 成都市| 扶绥县| 章丘市| 高密市|