框架工作原理整理彙總

Struts2工作原理


1 客戶端初始化一個指向Servlet容器(例如Tomcat)的請求
2 這個請求經過一系列的過濾器(Filter) 
3 FilterDispatcher或StrutsPrepareAndExecuteFilter詢問ActionMapper來決定這個請是否需要調用某個Action 
4 如果ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy 
5 ActionProxy通過Configuration Manager詢問框架的配置文件,找到需要調用的Action類 
6 ActionProxy創建一個ActionInvocation的實例。
7 ActionInvocation實例使用命名模式來調用,在調用Action的過程前後,涉及到相關攔截器(Intercepter)的調用。 
8 一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常是一個需要被表示的JSP。在表示的過程中可以使用Struts2 框架中繼承的標籤。在這個過程中需要涉及到ActionMapper

Controller、ActionProxy、ActionMapping、Configuration Manager、ActionInvocation、Inerceptor、Action、Result。

工作流程
1、客戶端瀏覽器發出HTTP請求.
2、根據web.xml配置,該請求被FilterDispatcher接收
3、根據struts.xml配置,找到需要調用的Action類和方法, 並通過IoC方式,將值注入給Aciton
4、Action調用業務邏輯組件處理業務邏輯,這一步包含表單驗證。
5、Action執行完畢,根據struts.xml中的配置找到對應的返回結果result,並跳轉到相應頁面
6、返回HTTP響應到客戶端瀏覽器


MyBatis工作原理

1.讀取並解析配置文件

2.根據XML配置文件創建SqlSessionFactory

3.SqlSessionFactory在根據配置,配置來源於兩個地方,一處是配置文件,一處是Java代碼的註解,獲取一個SqlSession。

4.創建事務

5.SqlSession包含了執行sql所需要的所有方法,可以通過SqlSession實例直接運行映射的sql語句,完成對數據的增刪改查

6.事務提交

7.關閉SqlSession

8.關閉SqlSessionFactory

MyBatisSQL是自己手動寫的所以調整方便。

MyBatis項目中所有的SQL語句都是依賴所用的數據庫的,所以不同數據庫類型的支持不好。



Hibernate工作原理

1.讀取並解析配置文件
2.讀取並解析映射信息,創建SessionFactory
3.打開Sesssion
4.創建事務Transation
5.持久化操作
6.提交事務
7.關閉Session
8.關閉SesstionFactory

Hibernate的調優方案

  1. 制定合理的緩存策略;
  2. 儘量使用延遲加載特性;
  3. 採用合理的Session管理機制;
  4. 使用批量抓取,設定合理的批處理參數(batch_size;
  5. 進行合理的O/R映射設計
Hibernate的查詢會將表中的所有字段查詢出來,這一點會有性能消耗。Hibernate也可以自己寫SQL來指定需要查詢的字段,但這樣就破壞了Hibernate開發的簡潔性。

Hibernate與具體數據庫的關聯只需在XML文件中配置即可,所有的HQL語句與具體使用的數據庫無關,移植性很好。


SpringMVC工作原理



1. 客戶端請求提交到DispatcherServlet

2. 由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller

3. DispatcherServlet將請求提交到Controller

4. Controller調用業務邏輯處理後,返回ModelAndView

5. DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖

6. 視圖負責將結果顯示到客戶端


DispatcherServlet是整個Spring MVC的核心。它負責接收HTTP請求組織協調Spring MVC的各個組成部分。

其主要工作有以下三項:

1. 截獲符合特定格式的URL請求。

2. 初始化DispatcherServlet上下文對應的WebApplicationContext,並將其與業務層、持久化層的WebApplicationContext建立關聯。

3. 初始化Spring MVC的各個組成組件,並裝配到DispatcherServlet中。


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