spring:
1)開源框架
2)IoC(控制反轉),將類的創建和依賴關係寫在配置文件裡,由配置文件注入,實現了松耦合
3)AOP 將安全,事務等於程序邏輯相對獨立的功能抽取出來,利用spring的配置文件將這些功能插進去,實現了按照方面編程,提高了復用性
struts跟spring的區別?
structs:和ww2等一樣,都是典型的mvc結構框架),structs偏重於表現層,它自己起一個控制器的作用即controller,它可以良好的把表現層與業務層分離開來。 spring:說白了就是一個大雜燴,提供了目前各種流行框架的集成,經典的有對hibernate的集成,此外,如mail,axis...各種都有。另外,它比較經典的就是IOC與AOP的功能。此外,它還提供了Spring MVC,它基於webflow。 Spring是一系列web框架技術的綜合,其特點是輕量級,非侵入性、解耦設計等。一般用的最多的是它的IoC/DI, 即反轉控制/依賴注入,例如用xml聲明Bean,運行時注入。
由於我不是很懂,所以理解不好。
簡單的說下struts spring hibernate 這3個主流的開源,業界事實上的標準框架吧!
在早期還沒有struts的時候,我們前後台傳遞數據,都是用的作用域對象(page,request,session,application),包含大量的getParameter 和getAttribute,以及數據類型的轉換。浪費了很多的時間。而且有很多的開發都未使用mvc的模式,加大了後期的維護以及二次開發的難度。
在這個情況下,struts應運而生,他提供了三大組件來供我們運用,前後台數據庫傳遞使用actionform來傳遞,直接封裝成對象。操作方便。而且,作為mvc的典型實現,視圖和控制層的分離,代碼更清晰,維護更方便。
早期做jdbc操作的時候,我相信大家都有這樣的體會,自己編寫數據庫操作類,不斷的傳遞數據庫操作語句,不斷的executeUpdate和executeQuery 然後又是循環讀取結果集,然後關閉鏈接。而且數據庫是關係型數據庫,而java開發的時候,是對像模型的,關係-對象的轉換,也讓人很頭疼。在企業開發中,最頭疼的就是更換數據庫,如果前期需求分析不到位的話,那就意味著項目就要重新來過的尷尬。
hibernate框架,提供了內置的方法,簡單的save merge delete find 方法,就可以實現以前需要很多編碼才能實現的功能,而且將值自動封裝到javabean中,使用方便。而且我們也不必去關心,什麼時候要開啟數據庫鏈接,什麼時候去關閉數據庫鏈接。而且hibernate也提供了數據庫切換的功能,簡單的配置即可,非常方便。也不必去編寫繁冗的sql語句了。
至於spring,真的可以說是java開發人員的春天。 Rod Johson在2002年編著的《Expert one to one J2EE design and development》一書中,對Java EE正統框架臃腫、低效、脫離現實的種種現狀提出了質疑,在該書中,作者根據自己多年豐富的實踐經驗,對EJB的各種笨重臃腫的結構進行了逐一的分析和否定,並分別以簡潔實用的方式替換之。 【我的java老師當時和我上過:那時候,業界一直大喊:“不用ejb就是j2ee開發。而且ejb的開發繁冗不是一般人能理解的(注:只是引用,我未研究過ejb,所以不敢妄言!)”】
簡單來說,Spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器框架。 ioc也可以理解為依賴注入。就是講程序之間的依賴性交給spring來管理,降低了程序之間的耦合度。在程序中,我們只需將某個對像以屬性的方式註入到該對像中即可,無須實例話,實例化的事情交由spring來管理。至於要實現話那個對像,可以在配置文件裡配置,當然,這些對象必須共同遵循某個規範(Interface)。 aop面向切面編程,spring的聲明式事務就是通過aop來實現。在hibernate中如果要對方法加事務,我們需要關心,對誰加,在哪裡加,而使用聲明式事務以後,我們無須關係這些具體細節。一切交給spring來處理。
這三個框架具有的共同的特性就是:他們都是輕量級的,使用很靈活。
我在這裡只是簡單的說了點而已,其實有很多東西都值得我們去研究,而不是一兩句話就可以概括的。
還要說明的就是:spring不是負責業務層的,而是把系統中散落的“切面”集合在一起,集中管理,從而讓我們程序員能有更多的精力去專注業務層的開發,加快軟件的開發進度。
以上所述就是本文的全部內容了,有需要的小伙伴可以參考下。