Spring是什么:
Spring是一個輕量級的DI和AOP容器框架。
說它輕量級有一大部分原因是相對與EJB的(雖然本人從沒有接觸過EJB的應用),重要的是,Spring是非侵入式的,基於spring開發的應用一般不依賴於spring的類。
DI:稱作依賴注入(Dependency Injection),和控制反轉一個概念,具體的講,當一個角色需要另外一個角色協助的時候,在傳統的程序設計中,通常有調用者來創建被調用者的實例。但是在spring中創建被調用者將不再有調用者完成,因此叫控制反轉。創建被調用對象有Spring來完成,在容器實例化對象的時候主動的將被調用者(或者說它的依賴對象)注入給調用對象,因此又叫依賴注入。
AOP:Spring對面向切面編程提供了強有力的支持,通過它讓我們將業務邏輯從應用服務(如事務管理)中分離出來,實現了高內聚開發,應用對象只關注業務邏輯,不再負責其它系統問題(如日志、事務等)。Spring支持用戶自定義切面。
面向切面編程是面向對象編程的有力補充。面向對象編程將程序分成各個層次的對象,面向切面的程序將運行過程分解成各個切面。AOP是從運行程序的角度去考慮程序的結構,提取業務處理過程的切面,OOP是靜態的抽象,AOP是動態的抽象,是對應用執行過程的步驟進行抽象,從而獲得步驟之間的邏輯划分。
容器:Spring是個容器,因為它包含並且管理應用對象的生命周期和配置。如對象的創建、銷毀、回調等。
框架:Spring作為一個框架,提供了一些基礎功能,(如事務管理,持久層集成等),使開發人員更專注於開發應用邏輯。
看完了Spring是什么,再來看看Spring有哪些優點
1.使用Spring的IOC容器,將對象之間的依賴關系交給Spring,降低組件之間的耦合性,讓我們更專注於應用邏輯
2.可以提供眾多服務,事務管理,WS等。
3.AOP的很好支持,方便面向切面編程。
4.對主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等
5.Spring DI機制降低了業務對象替換的復雜性。
6.Spring屬於低侵入,代碼污染極低。
7.Spring的高度可開放性,並不強制依賴於Spring,開發者可以自由選擇Spring部分或全部
文章摘自:http://fred-han.iteye.com/blog/1561317 http://blog.csdn.net/cynhafa/article/details/6205361