在SpringBoot出現(xiàn)之前,常說(shuō)的三大框架是 Spring、SpringMVC、Mybatis(SSM),而在SpringBoot出現(xiàn)之后,SpringBoot慢慢開(kāi)始占據(jù)了主流地位,另外在SSM之前還有一個(gè)業(yè)內(nèi)流行的SSH框架。
接下來(lái)小編就給大家具體聊聊這些框架,在這篇文章中,小編會(huì)涉及到如下幾個(gè)問(wèn)題:
1.什么是SSH?
Struts、Spring和Hibernate ,簡(jiǎn)稱(chēng)SSH。
在10多年前,SSH絕對(duì)是業(yè)內(nèi)最流行的企業(yè)級(jí)開(kāi)發(fā)框架。
SSH框架是以Struts框架進(jìn)行MVC分離、控制業(yè)務(wù)跳轉(zhuǎn),同時(shí)使用Hibernate進(jìn)行持久化,最后配合Spring的統(tǒng)一管理進(jìn)行實(shí)現(xiàn)的開(kāi)發(fā)框架。相對(duì)于傳統(tǒng)的J2EE開(kāi)發(fā)框架來(lái)講性能相對(duì)較高、資源消耗相對(duì)較少。具體優(yōu)勢(shì)如下:
框架進(jìn)行了代碼分層,將Java代碼和HTML代碼進(jìn)行分層,大大降低了開(kāi)發(fā)人員的技術(shù)難度,不需要同時(shí)精通Java后端知識(shí)和Web前端知識(shí)。由于使用了Struts框架進(jìn)行了MVC分離,降低了各層代碼間的耦合度。與Spring的AOP機(jī)制相互獨(dú)立,互不影響。使用SSH框架開(kāi)發(fā)項(xiàng)目,能夠大大提高項(xiàng)目的開(kāi)發(fā)效率與開(kāi)發(fā)質(zhì)量。良好的擴(kuò)展性和維護(hù)性。
2. 什么是SSM?
SSM框架是Spring+SpringMVC+MyBatis三個(gè)框架整合而成的,其實(shí)SpringMVC屬于Spring框架,所以SSM框架其實(shí)就是Spring和Mybatis兩個(gè)框架的整合運(yùn)用。那SSM框架的優(yōu)勢(shì)又有哪一些呢?
對(duì)于MVC模式的實(shí)現(xiàn),SpringMvc更加的輕量。由于SpringMvc本身屬于Spring,因此與Spring的配合使用契合度更高。Mybatis相對(duì)Hibernate更加輕量,同時(shí)將Sql和業(yè)務(wù)代碼進(jìn)行了很好的解耦。MyBatis的學(xué)習(xí)門(mén)檻更低,相對(duì)于傳統(tǒng)的JDBC差距不大,更好入門(mén)及掌握。
3. SSH框架和SSM框架的區(qū)別
兩個(gè)框架的主要區(qū)別在于兩點(diǎn)。第一,MVC分離的實(shí)現(xiàn)方式中前者為Struts,后者為SpringMVC;第二,持久層的框架前者為Hibernate,后者為MyBatis,所以這兩個(gè)框架幾乎所有的不同都是由這兩點(diǎn)產(chǎn)生的。
4. Struts對(duì)比SpringMVC
由于SpringMVC針對(duì)方法進(jìn)行設(shè)計(jì),而Struts針對(duì)類(lèi)進(jìn)行設(shè)計(jì),相對(duì)來(lái)講SpringMVC的速度相對(duì)更快。SpringMVC配置更加簡(jiǎn)單,可以說(shuō)完全0配置,開(kāi)發(fā)效率更高。SpringMVC的學(xué)習(xí)門(mén)檻更低,使用更簡(jiǎn)單。SpringMVC擴(kuò)展性更強(qiáng),更靈活。
5. Hibernate對(duì)比MyBatis
MyBatis更加輕量,學(xué)習(xí)門(mén)檻更低,但相對(duì)功能全面性來(lái)講Hibernate更好。如果你的項(xiàng)目中僅僅使用簡(jiǎn)單的增刪改查功能,選用Hibernate會(huì)讓你節(jié)省不少的開(kāi)發(fā)時(shí)間。反之如果需要使用到較多的sql復(fù)雜語(yǔ)句,則選用MyBatis更加靈活。MyBatis默認(rèn)的SQL查詢(xún)性能更高,而Hibernate會(huì)進(jìn)行所有字段查詢(xún),性能就相對(duì)較低了。Hibernate有自己的日志統(tǒng)計(jì)功能,而MyBatis需要使用Log4j實(shí)現(xiàn)。MyBatis緩存特性相對(duì)Hibernate更高。