sprng和struts有什么區(qū)別?
spring:
1)開源框架
2)IoC(控制反轉),將類的創(chuàng)建和依賴關系寫在配置文件里,由配置文件注入,實現(xiàn)了松耦合
3)AOP 將安全,事務等于程序邏輯相對獨立的功能抽取出來,利用spring的配置文件將這些功能插進去,實現(xiàn)了按照方面編程,提高了復用性
struts跟spring的區(qū)別?
structs:和ww2等一樣,都是典型的mvc結構框架),structs偏重于表現(xiàn)層,它自己起一個控制器的作用即controller,它可以良好的把表現(xiàn)層與業(yè)務層分離開來。 spring:說白了就是一個大雜燴,提供了目前各種流行框架的集成,經(jīng)典的有對hibernate的集成,此外,如mail,axis...各種都有。另外,它比較經(jīng)典的就是IOC與AOP的功能。此外,它還提供了Spring MVC,它基于webflow。Spring是一系列web框架技術的綜合,其特點是輕量級,非侵入性、解耦設計等。一般用的最多的是它的IoC/DI, 即反轉控制/依賴注入,例如用xml聲明Bean,運行時注入。
由于我不是很懂,所以理解不好。
簡單的說下 struts spring hibernate 這3個主流的開源,業(yè)界事實上的標準框架吧!
在早期還沒有struts的時候,我們前后臺傳遞數(shù)據(jù),都是用的作用域?qū)ο?page,request,session,application),包含大量的getParameter 和 getAttribute,以及數(shù)據(jù)類型的轉換。浪費了很多的時間。而且有很多的開發(fā)都未使用mvc的模式,加大了后期的維護以及二次開發(fā)的難度。
在這個情況下,struts應運而生,他提供了 三大組件來供我們運用,前后臺數(shù)據(jù)庫傳遞使用actionform來傳遞,直接封裝成對象。操作方便。而且,作為mvc的典型實現(xiàn),視圖和控制層的分離,代碼更清晰,維護更方便。
早期做jdbc操作的時候,我相信大家都有這樣的體會,自己編寫數(shù)據(jù)庫操作類,不斷的傳遞數(shù)據(jù)庫操作語句,不斷的executeUpdate和executeQuery 然后又是循環(huán)讀取結果集,然后關閉鏈接。而且數(shù)據(jù)庫是關系型數(shù)據(jù)庫,而java開發(fā)的時候,是對象模型的,關系-對象的轉換,也讓人很頭疼。在企業(yè)開發(fā)中,最頭疼的就是更換數(shù)據(jù)庫,如果前期需求分析不到位的話,那就意味著項目就要重新來過的尷尬。
hibernate框架,提供了內(nèi)置的方法,簡單的save merge delete find 方法,就可以實現(xiàn)以前需要很多編碼才能實現(xiàn)的功能,而且將值自動封裝到javabean中,使用方便。而且我們也不必去關心,什么時候要開啟數(shù)據(jù)庫鏈接,什么時候去關閉數(shù)據(jù)庫鏈接。而且hibernate也提供了數(shù)據(jù)庫切換的功能,簡單的配置即可,非常方便。也不必去編寫繁冗的sql語句了。
至于spring,真的可以說是java開發(fā)人員的春天。Rod Johson在2002年編著的《Expert one to one J2EE design and development》一書中,對Java EE正統(tǒng)框架臃腫、低效、脫離現(xiàn)實的種種現(xiàn)狀提出了質(zhì)疑,在該書中,作者根據(jù)自己多年豐富的實踐經(jīng)驗,對EJB的各種笨重臃腫的結構進行了逐一的分析和否定,并分別以簡潔實用的方式替換之?!疚业膉ava老師當時和我上過:那時候,業(yè)界一直大喊:“不用ejb就是j2ee開發(fā)。而且ejb的開發(fā)繁冗不是一般人能理解的(注:只是引用,我未研究過ejb,所以不敢妄言?。薄?/p>
簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。ioc也可以理解為依賴注入。就是講程序之間的依賴性交給spring來管理,降低了程序之間的耦合度。在程序中,我們只需將某個對象以屬性的方式注入到該對象中即可,無須實例話,實例化的事情交由spring來管理。至于要實現(xiàn)話那個對像,可以在配置文件里配置,當然,這些對象必須共同遵循某個規(guī)范(Interface)。aop面向切面編程,spring的聲明式事務就是通過aop來實現(xiàn)嘚。在hibernate中如果要對方法加事務,我們需要關心,對誰加,在哪里加,而使用聲明式事務以后,我們無須關系這些具體細節(jié)。一切交給spring來處理。
這三個框架具有的共同的特性就是:他們都是輕量級的,使用很靈活。
我在這里只是簡單的說了點而已,其實有很多東西都值得我們?nèi)パ芯浚皇且粌删湓捑涂梢愿爬ǖ摹?/p>
還要說明的就是:spring不是負責業(yè)務層的,而是把系統(tǒng)中散落的“切面”集合在一起,集中管理,從而讓我們程序員能有更多的精力去專注業(yè)務層的開發(fā),加快軟件的開發(fā)進度。
以上所述就是本文的全部內(nèi)容了,有需要的小伙伴可以參考下。
相關文章
Java爬蟲實現(xiàn)爬取京東上的手機搜索頁面 HttpCliient+Jsoup
下面小編就為大家分享一篇Java爬蟲實現(xiàn)爬取京東上的手機搜索頁面 HttpCliient+Jsoup,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11Spring Cloud實現(xiàn)提供API給客戶端的方法詳解
這篇文章主要給大家介紹了關于Spring Cloud實現(xiàn)提供API給客戶端的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-01-01