1.springMVC
spring web mvc 是一種基於Java的實現了web MVC設計模式的請求驅動類的輕量級web框架,即使用了MVC架構模式的思想將web層進行指責解耦,基於請求驅動指的就是使用請求—響應模型。
M-Model 模型(即封裝了應用程序的數據和一般他們會組成的pojo)pojo就是Java類
V-view 視圖 (是負責呈現模型數據和一般它生成的HTML輸出,客戶端的瀏覽器能夠解釋)。
C-Controller 控制器(是負責呈現處理用戶的請求並建立適當的模型,並把它傳遞給視圖渲染)。
spring的web模型、視圖、控制器 框架是圍繞DispatcherServlet的設計。
springMVC的執行過程:
1.首先用戶發送請求---->前端控制器(DispatcherServlet),前端控制器根據請求信息(URL)來決定選擇哪一個頁面控制器進行處理並把請求委托給頁面控制器。
2.頁面控制器接收到請求后,進行功能處理,首先需要收集和綁定請求參數到一個對象,這個對象在springMVC中叫命令對象,並進行驗證,然后將命令對象委托給業務對象進行處理;處理完畢之后返回一個ModelAndView(模型數據和邏輯視圖名);
3.前端控制器收回控制權,然后根據返回的邏輯視圖名選擇相應的視圖進行視圖渲染,並把模型數據傳入以便視圖渲染;
4.前端控制器再次收回控制權,將相應返回給用戶。
二、spring
IOC容器(就是具有依賴注入功能的容器)IOC 容器負責實例化、定位、配置應用程序的對象及建立這些對象間的依賴,應用程序無需直接在代碼中new相關的對象,應用程序由IOC 容器進行組裝。在spring中BeanFactory是 ioc的實際代表者。
AOP 簡單的說就是將那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來,便於減少系統的重復代碼,降低模塊間的耦合度,並有利於未來的可操作性和可維護性。AOP代表的是一個橫向的關系。
AOP用來封裝橫切關注點,具體可以在如下場景中使用:
.Authentication 權限
.Caching緩存
.Context passing內容傳遞
.Error handing 錯誤處理
.Lazy loading 懶加載
.Debugging 調試
.logging,tracing,profilinb,andmonitoring 記錄跟蹤 優化 校准
.Performance optimization 性能優化
.Persistence 持久化 Resource pooling 資源池
.Synchronization 同步
.Transactions事物
三、M-Mybatis
Mybatis是支持普通的sql查詢,存儲過程和高級映射的優秀持久層框架。mybatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。mybatis使用簡單的xml或注解用於配置和原始映射,將接口和Java的pojos(plain old Java object,普通的Java對象)映射成數據庫中的記錄。
總體流程:
第一步;加載配置並初始化
觸發條件:加載配置文件。將SQL的配置信息加載成為一個個MappedStatement對象(包括了傳入參數映射配置,執行的SQL語句,結果映射配置),存儲在內存中。
第二步;接收調用請求
觸發條件:調用mybatis提供的API
傳入參數:為Sql的ID和傳入參數對象
處理過程:將請求傳遞給下層的請求處理層進行處理。
第三步;處理操作請求
觸發條件:API接口層傳遞請求過來
傳入參數:為sql的ID和傳入參數對象
處理過程:
1.根據sql 的ID查找對應的MappedStatement對象。
2.根據傳入參數對象解析MappedStatement對象,得到最終要執行的sql和執行傳入參數。
3.獲取數據庫連接,根據得到的最終sql語句和執行傳入參數到數據庫執行,並得到執行結果。
4.根據MappedStatement對象中的結果映射配置對得到的執行結果進行轉換處理,並得到最終的處理結果。
5.釋放連接資源。
第四步;返回處理結果將最終的處理結果返回
mybatis最強大的特性之一就是它的動態語句功能。