1. 程式人生 > >對SpringMVC、Struts2、Hibernate以及Mybatis工作原理的初步理解

對SpringMVC、Struts2、Hibernate以及Mybatis工作原理的初步理解

一、看了對SpringMVC原理的介紹,我畫了一張圖:

按圖中序號依次向下進行:

1.使用者傳送請求到前端控制器DispatcherServlet

2.DispatcherServlet收到請求呼叫處理器對映器HandlerMapping

3.HandlerMapping找到具體的處理器,生成處理器物件以及處理器攔截器(如果有則生成),一併將其返回給DispatcherServlet(圖中的第3步和第4步)

4.DispatcherServlet根據收到的處理器物件呼叫HandlerAdapter處理器介面卡

5.HandlerAdapter通過適配找到合適的處理器,也叫後端控制器(Controller)

6.後端控制器執行完畢後生成ModelAndView並通過HandlerAdapter返回給DispatcherServlet

7.DispatcherServlet將生成的ModelAndView傳給ViewReslover檢視解析器

8.ViewReslover將ModelAndView生成具體的View

9.DispatcherServlet根據生成的View進行檢視渲染

10.最終將渲染後的檢視反饋給使用者

二、對struts2的理解,雖然看起來字很多,但是因為它的作用範圍小,其實是一張更簡單的圖:

1.客戶端初始化一個指向Servlet容器的請求

2.請求經過一系列過濾器的處理到達FilterDispatcher(圖中第2步和 第3步)

3.FilterDispatcher被呼叫,詢問ActionMapper是否需要呼叫某個Action,如果不需要,則返回Servlet,使用者請求失敗,如果需要,繼續進行

4.FileDispatcher將請求的處理交給ActionProxy

5.ActionProxy根據Configuration Manager詢問框架的配置檔案,找到需要呼叫的Action類

6.ActionProxy建立Action的例項ActionInvocation

7.Action執行完畢後,ActionInvocation根據Struts.xml配置檔案找到對應的返回結果

8.返回結果通過ActionMapper返回到Servlet容器

9.Servlet將結果反饋給使用者

三、Hibernate是一種ORM框架,工作原理大概就是程式執行過程:

1.通過Configuration().configure();讀取並解析配置檔案

2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>讀取並解析對映資訊

3.通過config.buildSessionFactory();//建立SessionFactory

4.sessionFactory.openSession();//開啟Session

5.session.beginTransaction();//建立事務Transation

6.persistent operate 持久化操作

7.session.getTransaction().commit();//提交事務

8.關閉Session

9.關閉SessionFactory

四、Mybatis將對資料庫的操作寫在了xml檔案裡,簡化了對資料庫的操作

Mybatis應用程式根據XML配置檔案建立SqlSessionFactory,SqlSessionFactory再根據配置,配置來源於兩個地方,一處是配置檔案,一處是Java程式碼的註解,獲取一個SqlSession。SqlSession包含了執行sql所需要的所有方法,可以通過SqlSession例項直接執行對映的sql語句,完成對資料庫的增刪改查和事務提交等,用完之後關閉SqlSession.