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