ssm框架原理是:將Spring、SpringMVC、MyBatis整合在一起,作為數(shù)據(jù)源較簡單的web項(xiàng)目的框架。流程是:Handler Mapping根據(jù)請求找到相應(yīng)的Handler,調(diào)用業(yè)務(wù)邏輯進(jìn)行處理,然后進(jìn)行視圖解析即可。
SSM框架簡介
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個(gè)開源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。SSM常作為數(shù)據(jù)源較簡單的web項(xiàng)目的框架。
SpringMVC
SpringMVC在項(xiàng)目中攔截用戶請求,它的核心Servlet即DispatcherServlet承擔(dān)中介的職責(zé),將用戶請求通過HandlerMapping去匹配Controller,Controller就是具體對應(yīng)請求所執(zhí)行的操作。
SpringMVC框架運(yùn)行流程
用戶將請求發(fā)送至DispatcherServlet;
DispatcherServlet收到請求查詢一個(gè)或多個(gè)HandlerMapping,找到處理該請求的Handler;
HandlerMapping根據(jù)請求找到相應(yīng)的Handler,生成Handler對象返回給DispatcherServlet;
DispatcherServlet通過HandlerAdapter調(diào)用Handler;
Handler(Controller)調(diào)用業(yè)務(wù)邏輯(service)進(jìn)行處理,處理完成返回ModelAndView;
HandlerAdapter將Handler處理結(jié)果ModelAndView返回給DispatcherServlet;
DispatcherServlet查詢一個(gè)或多個(gè)ViewReslover(視圖解析器),將ModelAndView傳給指定的ViewReslover;
ViewReslover解析后返回具體View給DispatcherServlet;
DispatcherServlet對View進(jìn)行渲染(將模型數(shù)據(jù)填充至視圖中);
DispatcherServlet響應(yīng)用戶,View將結(jié)果顯示在客戶端。
流程大致如下圖:
DispatcherServlet是整個(gè)Spring MVC的核心,它負(fù)責(zé)接收HTTP請求,組織協(xié)調(diào)Spring MVC的各個(gè)組成部分,其主要的工作有以下3項(xiàng):
a. 截獲符合特定格式的URL請求;
b. 初始化DispatcherServlet上下文對應(yīng)的WebApplicationContext,并將其與業(yè)務(wù)層、持久層的WebApplicationContext建立關(guān)聯(lián);
c. 初始化Spring MVC的各個(gè)組件,并配裝到DispatcherServlet中。
Spring
Spring就像是整個(gè)項(xiàng)目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實(shí)體類的構(gòu)造方法來實(shí)例化對象。也可以稱之為項(xiàng)目中的粘合劑。
Spring的核心思想是IOC(控制反轉(zhuǎn)),即不再需要程序員去顯式地new一個(gè)對象,而是讓Spring框架幫你來完成這一切。IOC容器負(fù)責(zé)實(shí)例化、定位、配置應(yīng)用程序中的對象及建立這些對象間的依賴。Spring的目的就是讓對象與對象(模塊與模塊)之間的關(guān)系沒有通過代碼來關(guān)聯(lián),都是通過配置類說明管理的(Spring根據(jù)這些配置,內(nèi)部通過反射去動態(tài)的組裝對象)。
IOC容器代表的就是org.springframework.beans包中的BeanFactory接口,其提供了IOC容器的基本功能;而org.springframework.context包下的ApplicationContext接口擴(kuò)展了BeanFactory,還提供了與Spring AOP集成、國際化處理、事件傳播及提供不同層次的context實(shí)現(xiàn)。
簡單說,BeanFactory提供了IOC容器最基本功能,而ApplicationContext則增加了