Spring Spring就像是整個項目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數去調用實體類的構造方法來實例化對象。也可以稱之爲項目中的粘合劑。 Spring的核心思想是IoC(控制反轉),即不再需要程序員去顯式地 NEW 一個對象,而是讓Spring框架幫你來完成這一切。
SpringMVC SpringMVC在項目中攔截用戶請求,它的核心Servlet即DispatcherServlet承擔中介或是前臺這樣的職責,將用戶請求通過HandlerMapping去匹配Controller,Controller就是具體對應請求所執行的操作。SpringMVC相當於SSH框架中struts。
Mybatis mybatis是對jdbc的封裝,它讓數據庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關聯到各實體類的Mapper文件,Mapper文件中配置了每個類對數據庫所需進行的sql語句映射。在每次與數據庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執行sql命令。
頁面發送請求給控制器,控制器調用業務層處理邏輯,邏輯層向持久層發送請求,持久層與數據庫交互,後將結果返回給業務層,業務層將處理邏輯發送給控制器,控制器再調用視圖展現數據
一、什麼是springmvc
springMVC是spring框架的一個模塊,springMVC和spring無需通過中間整合層進行開發。
springMVC是一個基於mvc的web框架。
Spring web mvc和Struts2都屬於表現層的框架,它是Spring框架的一部分,我們可以從Spring的整體結構中看得出來:
二、mvc在b/s系統下的應用
mvc是個一個設計模式,大家都曉得,無需贅述了,直接看mvc在b/s系統下的應用:
1.用戶發起request請求至控制器(Controller)
控制接收用戶請求的數據,委託給模型進行處理
2.控制器通過模型(Model)處理數據並得到處理結果
模型通常是指業務邏輯
3.模型處理結果返回給控制器
4.控制器將模型數據在視圖(View)中展示
web中模型無法將數據直接在視圖上顯示,需要通過控制器完成。如果在C/S應用中模型是可以將數據在視圖中展示的。
5.控制器將視圖response響應給用戶
通過視圖展示給用戶要的數據或處理結果。
三、SpringMVC框架介紹
(1).發起請求到前端控制器(DispatcherServlet);
(2).前端控制器請求HandlerMapping查找Handler,可以根據xml配置、註解進行查找;
(3).處理器映射器HandlerMapping向前端控制器返回Handler;
(4).前端控制器調用處理器適配器去執行Handler;
(5).處理器適配器去執行Handler;
(6).Handler執行完成給適配器返回ModelAndView;
(7).處理器適配器向前端控制器返回ModelAndView(是springmvc框架的一個底層對象,包括Model和View);
(8).前端控制器請求視圖解析器去進行視圖解析,根據邏輯視圖名稱解析真正的視圖(jsp...);
(9).視圖解析器向前端控制器返回View;
(10).前端控制器進行視圖渲染,視圖渲染就是將模型數據(在ModelAndView對象中)填充到request域中。
(11).前端控制器向用戶響應結果。
組件:
1、前端控制器DispatcherServlet(不需要攻城獅開發),由框架提供
作用:接收請求,響應結果,相當於轉發器,中央處理器。有了dispatcherServlet減少了其它組件之間的耦合度。
用戶請求到達前端控制器,它就相當於mvc模式中的c,dispatcherServlet是整個流程控制的中心,由它調用其它組件處理用戶的請求,dispatcherServlet的存在降低了組件之間的耦合性。
2、處理器映射器HandlerMapping(不需要攻城獅開發),由框架提供
作用:根據請求的url查找Handler
HandlerMapping負責根據用戶請求找到Handler即處理器,springmvc提供了不同的映射器實現不同的映射方式,例如:配置文件方式,實現接口方式,註解方式等。
3、處理器適配器HandlerAdapter
作用:按照特定規則(HandlerAdapter要求的規則)去執行Handler
通過HandlerAdapter對處理器進行執行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執行。
4、處理器Handler(需要工程師開發)
注意:編寫Handler時按照HandlerAdapter的要求去做,這樣適配器纔可以去正確執行Handler
Handler 是繼DispatcherServlet前端控制器的後端控制器,在DispatcherServlet的控制下Handler對具體的用戶請求進行處理。
由於Handler涉及到具體的用戶業務請求,所以一般情況需要攻城獅根據業務需求開發Handler。
5、視圖解析器View resolver(不需要工程師開發),由框架提供
作用:進行視圖解析,根據邏輯視圖名解析成真正的視圖(view)
View Resolver負責將處理結果生成View視圖,View Resolver首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最後對View進行渲染將處理結果通過頁面展示給用戶。 springmvc框架提供了很多的View視圖類型,包括:jstlView、freemarkerView、pdfView等。
一般情況下需要通過頁面標籤或頁面模版技術將模型數據通過頁面展示給用戶,需要由攻城獅根據業務需求開發具體的頁面。
6、視圖View(需要工程師開發jsp...)
View是一個接口,實現類支持不同的View類型(jsp、freemarker、pdf...)
怎麼樣?今天的學習內容你掌握了多少?是否對你的知識庫有所擴充呢?
喜歡小編請多多點贊評論轉發,關注小編,小編會持續爲大家更新Java架構相關學習內容,能幫到大家更好的學習就是小編的奮鬥目標,你們的支持就是小編最大的動力!!!