對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.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章