Hibernate、Spring和Struts2工做原理 1. Hibernate 的工做原理 1.讀取並解析配置文件 2.讀取並解析映射信息,建立SessionFactory 3.打開Sesssion 4.建立事務Transation 5.持久化操做 6.提交事務 7.關閉Session 8.關閉SesstionFactory 2. Hibernate是如何延遲加載? 1. Hibernate2延遲加載實現:a)實體對象 b)集合(Collection) 2. Hibernate3 提供了屬性的延遲加載功能,當Hibernate在查詢數據的時候,數據並無存在與內存中,當程序真正對數據的操做時,對象才存在與內存中,就實現了延遲加載,他節省了服務器的內存開銷,從而提升了服務器的性能 3.說下Hibernate的緩存機制 1. 內部緩存存在Hibernate中又叫一級緩存,屬於應用事物級緩存 2. 二級緩存: a) 應用及緩存 b) 分佈式緩存 條件:數據不會被第三方修改、數據大小在可接受範圍、數據更新頻率低、同一數據被系統頻繁使用、非關鍵數據 4. Struts工做機制? 1.當用戶在頁面上進行操做時,生成了*.action的請求傳給struts.xml(MVC中的V) 2.服務器根據這個配置文件中所定義的action名稱,尋找匹配的處理方法:若是沒有定義method,則直接調用的是class裏面的類的execute方法,若是定義了method,則是調用的class類裏的method中所指明的方法(MVC中的C) 3.在method中進行處理,在這裏有可能採用若干高深莫測的方法,但都屬於較爲底層的工做,好比訪問數據庫等等(MVC 中的M) 4.方法處理完後(可能有一串的處理方法,但終究有一個方法是最終進行的),return了一個字符串,好比success、error等,並將這個字符串送回給struts.xml,struts.xml在前面action標籤內部定義的若干個result中,找到name屬性與返回字符傳相同的,而後根據type的類型,向指定頁面進行跳轉。(MVC中的C) 5.跳轉的頁面接受到了請求,生成頁面在瀏覽器裏進行顯示。(MVC中的V) 5. springMVC工做機制 1.springmvc請全部的請求都提交給DispatcherServlet,它會委託應用系統的其餘模塊負責負責對請求進行真正的處理工做。 2.DispatcherServlet查詢一個或多個HandlerMapping,找處處理請求的Controller. 3.DispatcherServlet請請求提交到目標Controller 4.Controller進行業務邏輯處理後,會返回一個ModelAndView 5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象 6.視圖對象負責渲染返回給客戶端。