SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三個(gè)開源框架整合而成,常作為數(shù)據(jù)源較簡(jiǎn)單的web項(xiàng)目的框架。其中spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。
SpringMVC:
1.客戶端發(fā)送請(qǐng)求到DispacherServlet(分發(fā)器);
2.由DispacherServlet控制器查詢HanderMapping,找到處理請(qǐng)求的Controller;
3.Controller調(diào)用業(yè)務(wù)邏輯處理后,返回ModelAndView;
4.DispacherSerclet查詢視圖解析器,找到ModelAndView指定的視圖;
5.視圖負(fù)責(zé)將結(jié)果顯示到客戶端。
Spring:就像是整個(gè)項(xiàng)目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實(shí)體類的構(gòu)造方法來實(shí)例化對(duì)象。也可以稱之為項(xiàng)目中的粘合劑。Spring的核心思想是IOC(控制反轉(zhuǎn)),即不再需要程序員去顯式地new一個(gè)對(duì)象,而是讓Spring框架幫你來完成這一切。IOC容器負(fù)責(zé)實(shí)例化、定位、配置應(yīng)用程序中的對(duì)象及建立這些對(duì)象間的依賴。Spring的目的就是讓對(duì)象與對(duì)象(模塊與模塊)之間的關(guān)系沒有通過代碼來關(guān)聯(lián),都是通過配置類說明管理的(Spring根據(jù)這些配置,內(nèi)部通過反射去動(dòng)態(tài)的組裝對(duì)象)。IOC容器代表的就是org.springframework.beans包中的BeanFactory接口,其提供了IOC容器的基本功能;而org.springframework.context包下的ApplicationContext接口擴(kuò)展了BeanFactory,還提供了與Spring AOP集成、國際化處理、事件傳播及提供不同層次的context實(shí)現(xiàn)。簡(jiǎn)單說,BeanFactory提供了IOC容器最基本功能,而ApplicationContext則增加了更多支持企業(yè)級(jí)功能支持。ApplicationContext完全繼承BeanFactory,因而BeanFactory所具有的語義也適用于ApplicationContext。
Mybatis:是對(duì)jdbc的封裝,它讓數(shù)據(jù)庫底層操作變的透明。Mybatis的操作都是圍繞一個(gè)sqlSessionFactory實(shí)例展開的。mybatis通過配置文件關(guān)聯(lián)到各實(shí)體類的Mapper文件,Mapper文件中配置了每個(gè)類對(duì)數(shù)據(jù)庫所需進(jìn)行的sql語句映射。在每次與數(shù)據(jù)庫交互時(shí),通過sqlSessionFactory拿到一個(gè)sqlSession,再執(zhí)行sql命令。Mybatis通過MapperProxy動(dòng)態(tài)代理dao,也就是說,當(dāng)執(zhí)行自己寫的dao里面的方法的時(shí)候,其實(shí)是對(duì)應(yīng)的MapperProxy在代理。