前言
?????? 想要搭建SSM框架是在我剛剛寫完Easyui這個(gè)前臺(tái)框架之后才想去弄的。說句實(shí)話,為什么我想學(xué)他呢?首先,在進(jìn)入大三學(xué)習(xí)開始的時(shí)候,我就決定了,以后要做一名java或者大數(shù)據(jù)的工程師,同時(shí)準(zhǔn)備在大三將java的東西都過一遍,所以SSM這個(gè)東西我是肯定要經(jīng)歷的。其次,SSM框架作為現(xiàn)在最實(shí)用的后端框架,它集合了很多java重要的知識(shí),對(duì)我學(xué)習(xí)java百利而無一害。最后,在經(jīng)過了大二一個(gè)學(xué)期的java web學(xué)習(xí),如果自己想要更好、更快的開發(fā)網(wǎng)頁(yè)后端,SSM則是我最需要學(xué)習(xí)的東西。
正文
?????? 那么SSM究竟是什么呢?SSM=Spring+Springmvc+Mybatis。用語(yǔ)言來描述呢,它是集成了Spring、Springmvc、Mybatis三個(gè)框架的集成框架。那么那三個(gè)框架又是什么呢?
?????? 1、Spring
? ? ? ? ? ? Spring是一個(gè)開源框架,是一個(gè)輕量級(jí)的Java的開發(fā)框架。說到這里,很多人會(huì)問,什么?? 是輕量級(jí)?我也是學(xué)了Spring之后才了解這個(gè)東西的,在這里,就框架我來解釋下。
? ? ? ? ? ? 首先,有輕量級(jí)必定有重量級(jí),而輕量級(jí)和重量級(jí)的最重要的區(qū)分就是占用資源的多少和解決問題的側(cè)重點(diǎn)。簡(jiǎn)而言之,輕量級(jí)是指它的創(chuàng)建和銷毀不需要消耗太多的資源,意味著可以在程序中經(jīng)常創(chuàng)建和銷毀session 的對(duì)象;重量級(jí)意味不能隨意的創(chuàng)建和銷毀它的實(shí)例,會(huì)占用很多的資源。輕量級(jí)框架側(cè)重于減小開發(fā)的復(fù)雜度,相應(yīng)的它的處理能力便有所減弱(如事務(wù)功能弱、不具備分布式處理能力),比較適用于開發(fā)中小型企業(yè)應(yīng)用。重量級(jí)框架則強(qiáng)調(diào)高可伸縮性,適合與開發(fā)大型企業(yè)應(yīng)用。
??????????? 那么,為什么說Spring是一個(gè)輕量級(jí)框架呢?簡(jiǎn)單點(diǎn)說,Spring框架在系統(tǒng)初始化時(shí),并沒有調(diào)用所有的服務(wù),占用資源少。同時(shí),它在Java開發(fā)中,大大降低了開發(fā)的復(fù)雜度。那么具體的Spring追蹤在下一篇文章中會(huì)詳細(xì)介紹。
???????? 2、Springmvc
??????????? 上面對(duì)Spring進(jìn)行了一點(diǎn)簡(jiǎn)單的介紹,接下來就是Springmvc。
? ? ? ? ? ? Springmvc其實(shí)是屬于SpringFrameWork的后續(xù)產(chǎn)品,它也是一個(gè)輕量級(jí)的框架,一個(gè)輕量級(jí)的,基于響應(yīng)請(qǐng)求的mvc框架。既然它的名字當(dāng)中有Spring這幾個(gè)單詞,那么我們可以很容易地知道,它和Spring在共同開發(fā)的時(shí)候是完美契合的。
???????????? Springmvc的優(yōu)點(diǎn)
?????????????????? a、性能比structs2要好 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? b、簡(jiǎn)單、便捷、易學(xué)
?????????????????? c、天生和Spring無縫集成(使用Spring的核心IOC、DI、AOP)
?????????????????? d、使用約定優(yōu)于配置?????????????????????????????? e、能夠進(jìn)行簡(jiǎn)單的junit測(cè)試
??????????????????? f、支持Resultful風(fēng)格??????????????????????????????? h、異常處理
??????????????????? 。。。。。。。(最重要的:使用的公司多)
????????? 3、Mybatis
????????????? 最后到了Mybatis。
? ? ? ? ? ? ? MyBatis是一個(gè)基于Java的持久層框架。它消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis使用簡(jiǎn)單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects,普通的Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄。
????????????? 相較于Hibernate,Mybatis更適合與公司項(xiàng)目的開發(fā)。那么,我們比對(duì)一下他們的本質(zhì)區(qū)別和應(yīng)用場(chǎng)景。
????????????? Hibernate:是一個(gè)標(biāo)準(zhǔn)的ORM框架(對(duì)象關(guān)系映射)。入門門檻十分高,不需要寫sql,它會(huì)自動(dòng)生成。然而在對(duì)sql語(yǔ)句的優(yōu)化、修改非常困難。
?????????????? 應(yīng)用場(chǎng)景:適用于需求變化不多的中小型項(xiàng)目。
????????????? Mybatis:專注于sql本身,需要程序員自己編寫sql語(yǔ)句,sql修改、優(yōu)化比較方便。當(dāng)然呢,它是一個(gè)不完全的ORM的框架,雖然程序員自己寫sql,但是也可以實(shí)現(xiàn)映射。
??????????????? 應(yīng)用場(chǎng)景:適用于需求變化較多的項(xiàng)目
結(jié)束
?? ? ? 最后附上整個(gè)框架的運(yùn)行流程:
? ? ? ? ? ? ? ?? ??
