一、看了對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.