spring springMVC Struts 區(qū)別

此篇文章主要為了記錄他們之間的區(qū)別,經(jīng)常聽到SpringSprintMVCStruts是什么呢?

Spring:

Spring是IOC和AOP的容器框架,Spring是一個(gè)通用解決方案, 最大的用處就是通過Ioc/AOP解耦, 降低軟件復(fù)雜性, 所以Spring可以結(jié)合SpringMVC等很多其他解決方案一起使用, 不僅僅只適用于WEB開發(fā)。

官方地址:spring:http://www.springsource.org


SpringMVC


Spring是一個(gè)通用解決方案, 最大的用處就是通過Ioc/AOP解耦, 降低軟件復(fù)雜性, 所以Spring可以結(jié)合SpringMVC等很多其他解決方案一起使用, 不僅僅只適用于WEB開發(fā),SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必須先依賴Spring。

springMVC位于spring web端的一個(gè)框架,是一種基于Java的實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將web層進(jìn)行職責(zé)解耦。附:基于請(qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型。從原理上看,它基本上和.NET的MVC的原理相同!

Spring和SpringMVC的聯(lián)系

Spring>SpringMVC,spring和SpringMVC是一種父子關(guān)系。SpringMVC是spring擴(kuò)展出的一個(gè)應(yīng)用于web端的框架。在這里需要注意的一點(diǎn),就是到底什么是父子容器關(guān)系:

spring主要的作用是黏合其他模塊組件,進(jìn)行統(tǒng)一管理,springmvc則主要是負(fù)責(zé)web端。那么,我們都知道,我們?cè)趹?yīng)用spring的時(shí)候,可以使用注入。這個(gè)時(shí)候,如果我們的web端是用的SpringMVC,這個(gè)時(shí)候,controller理論上是通過SpringMVC去注入,但是,使用spring注入,同樣是可行的。同理,service等層,使用SpringMVC配置的統(tǒng)一掃描裝配也是可以的。所以,如果說只是為了使用spring的依賴注入,是大可不必將springMVC和spring同時(shí)使用的。他們完全可以分開!

但是,盡管SpringMVC和spring都可以進(jìn)行自動(dòng)裝配掃描,值得注意的是:

spring(父容器)并不能直接訪問SpringMVC(子容器)所注入的對(duì)象,但是SpringMVC卻可以訪問到spring裝載的對(duì)象。所以,在配置自動(dòng)裝配的時(shí)候,應(yīng)該注意到這一點(diǎn)。


Struts


Struts是一個(gè)基于Sun,J2EE平臺(tái)的MVC框架,主要是采用Servlet和JSP技術(shù)來實(shí)現(xiàn)的。由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡(jiǎn)單易用,敏捷迅速,在過去的一年中頗受關(guān)注。Struts把Servlet、JSP、自定義標(biāo)簽和信息資源(message resources)整合到一個(gè)統(tǒng)一的框架中,開發(fā)人員利用其進(jìn)行開發(fā)時(shí)不用再自己編碼實(shí)現(xiàn)全套MVC模式,極大的節(jié)省了時(shí)間,所以說Struts是一個(gè)非常不錯(cuò)的應(yīng)用框架。

官方地址:http://struts.apache.org

Struts是對(duì)于MVC的一種非常完美的實(shí)現(xiàn),從根本上來說,它其實(shí)和SpringMVC一樣,都是基于MVC思想的擴(kuò)展實(shí)現(xiàn)。但是,在SpringMVC3之后

,SpringMVC完超Struts。(注:但是,框架并沒有優(yōu)劣之分,框架本身就是一種權(quán)衡,相對(duì)而言而已)

Struts和SpringMVC的區(qū)別:

首先,如果說項(xiàng)目中使用了spring,那么還是使用SpringMVC吧,因?yàn)橄鄬?duì)于融合Struts來說,spring和SpringMVC是非常完美的無縫鏈接。

其次,SpringMVC的攔截粒度是方法,而Struts的粒度是類

然后,入口不同,SpringMVC的入口是servlet,而Struts是filter

最后,如果使用注解的話,SpringMVC基本上是零配置,而Struts需要配置很多。

備注:想說一點(diǎn)的是:在Struts中可以配置開發(fā)者模式,就是說當(dāng)修改了一個(gè)URL訪問,可以不用重啟工程。但是SpringMVC需要重啟。


ssh

SSH 為 struts+spring+hibernate 的一個(gè)集成框架,是目前較流行的一種JAVA Web應(yīng)用程序開源框架。

SSM(SpringMVC+Spring+Mybatis)

Hibernate

  Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫(kù)。

Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序?qū)嵱?,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。

官方地址:http://www.hibernate.org


摘自:http://www.cnblogs.com/hhx626/p/6010293.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容