struts與hibernate集成開發
最近學習struts與hibernate相關知識,下面是個人對struts與hibernate集成開發的一些見解,寫出來跟大家共同討論、學習,歡迎指教。
要集成struts與hibernate進行開發,首先應該了解一下struts和hibernate框架各自的工作原理和模式般的開發流程。
首先介紹struts的大概工作流程,下面通過一張struts工作的時序圖來說明其工作流程:

Struts工作流程分析:
1)Web服務器啟動,初始化ActionServlet,讀取struts-config.xml文件配置信息,把這些信息分發到相應的對象中。
2)用戶發出請求后,ActionServlet接收到請求,查找與請求匹配的Action映射對象(ActionMapping)對象是否存在,是:將請求以及Actionform對象傳遞給相應的Action對象。
3)Action調用業務邏輯服務接口,結合ActionForm,對用戶的請求做出處理。
4)Action處理完畢返回ActionForward對象給ActionServlet。ActionForward對象包含了轉發目標對象,可以是jsp或Action。
5)ActionServlet根據ActionForward對象的指向繼續轉發請求,重復從第2步進行處理。
至此,我們對struts 的基本工作流程有個整體的認識,但還沒提hibernate相關的任何知識,業務邏輯層也只是在第3)點微提一下。
接下來,我們來看下hibernate是怎樣工作的?(注:在這不是討論ORM的實現,只討論怎讓hibernate這ORM中間件工作)
Hibernate是個獨立的框架,它不依賴任何的Web Server或Application Server,就是說不需要這些支持。
Hibernate有五個核心接口,分別為Configuratoin, SessionFactory, Session,Query及Criteria。通過這些接口就可以完成hibernate的初始化,對持久化對象進行存取,更新等操作。
下面簡要介始一下這些接口。
1、Configuration接口 是Hibernate應用的入口,在開始使用Hibernate的各種功能之前需要先創建Configuration對象。它負責加載Hibernate 應用配置文件,如Configuration cf = new Configuration.configure("com/myproj/hibernate/configs/hibernate.cfg.xml");
2、SessionFactory接口 緩存了Configuration對象所包含的配置信息,能根據映射信息自動生成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 是怎樣工作的,其實我只想讓你清楚:“
Hibernate是個獨立的框架,它不依賴任何的Web Server或Application Server,就是說不需要這些支持。”
那么,我們要回到主題來:如何集成struts與hibernate開發?答案很簡單:hibernate和struts本質上是沒什么聯系的,只要你記住:
Hibernate是個獨立的框架,它不依賴任何的Web Server或Application Server。用DAO模式把hibernate持久化的操作封裝好,供業務邏輯服務類調用就可以。回過頭來看struts工作流時序圖的解釋的第三點:“
3)Action調用業務邏輯服務接口,結合ActionForm,對用戶的請求做出處理。”,不難得出:
用戶請求后,struts負責找到相應的Action對象,Action調用業務邏輯服務接口,業務邏輯服務接口調用DAO接口(這里默認的實現就用hibernate,當然, 還可以有多種對數據庫操作的實現)
hibernate充當下面這張圖中的"持久層(DAO)"
由于本人對struts及hibernate認識不深,寫這篇文章只是拋磚引玉,希望高手們發表意見指正錯誤,多指教。
posted on 2008-02-29 18:44
Sonny Li 閱讀(996)
評論(0) 編輯 收藏 所屬分類:
框架相關