SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個(gè)開源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。常作為數(shù)據(jù)源較簡單的web項(xiàng)目的框架。
- Spring
Spring就像是整個(gè)項(xiàng)目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實(shí)體類的構(gòu)造方法來實(shí)例化對象。也可以稱之為項(xiàng)目中的粘合劑。
Spring的核心思想是IoC(控制反轉(zhuǎn)),即不再需要程序員去顯式地new一個(gè)對象,而是讓Spring框架幫你來完成這一切。
- SpringMVC
SpringMVC在項(xiàng)目中攔截用戶請求,它的核心Servlet即DispatcherServlet承擔(dān)中介或是前臺這樣的職責(zé),將用戶請求通過HandlerMapping去匹配Controller,Controller就是具體對應(yīng)請求所執(zhí)行的操作。SpringMVC相當(dāng)于SSH框架中struts。
- mybatis
mybatis是對jdbc的封裝,它讓數(shù)據(jù)庫底層操作變的透明。mybatis的操作都是圍繞一個(gè)sqlSessionFactory實(shí)例展開的。mybatis通過配置文件關(guān)聯(lián)到各實(shí)體類的Mapper文件,Mapper文件中配置了每個(gè)類對數(shù)據(jù)庫所需進(jìn)行的sql語句映射。在每次與數(shù)據(jù)庫交互時(shí),通過sqlSessionFactory拿到一個(gè)sqlSession,再執(zhí)行sql命令。
頁面發(fā)送請求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請求,持久層與數(shù)據(jù)庫交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。
框架是我們軟件開發(fā)中一套解決方案,不同框架解決不同問題。框架是一個(gè)半成品。
框架(Framework)是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法;另一種定義認(rèn)為,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架。
可以說,一個(gè)框架是一個(gè)可復(fù)用的設(shè)計(jì)構(gòu)件,它規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個(gè)設(shè)計(jì)、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程,表現(xiàn)為一組抽象類以及其實(shí)例之間協(xié)作的方法,它為構(gòu)件復(fù)用提供了上下文(Context)關(guān)系。
對于程序員來說,框架是一套資源,這套資源中會包含 Jar 包、文檔,還有些會包含源碼、代碼示例等。這套資源從相關(guān)的官網(wǎng)上可以下載。一般是以壓縮文件的形式出現(xiàn)
三層架構(gòu)
- 表現(xiàn)層——用來顯示數(shù)據(jù)(SpringMVC)
- 業(yè)務(wù)層——用來完成業(yè)務(wù)邏輯(Spring)
- 持久層——和數(shù)據(jù)庫進(jìn)行交互(Mybatis)