簡析Spring及其優缺點

大部分項目都少不了Spring的身影,咱們看一個框架是否優秀,首先看這個框架是不是非侵入式的,其次是可擴展性,再次是解耦性和開發週期。
Spring是一個輕量級的DI和AOP容器框架。說它輕量級有一大部分緣由是相對與EJB的(雖然本人從沒有接觸過EJB的應用),重要的是,Spring是非侵入式的(所謂非侵入式就是遠程調試 而不植入,spring再也不用new的方式來建立對象,而是使用依賴注入的方式),基於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部分或所有。
再來看看Spring有哪些缺點:
1.jsp中要寫不少代碼、控制器過於靈活,缺乏一個公用控制器;
2.Spring不支持分佈式,這也是EJB仍然在用的緣由之一。
 spring

相關文章
相關標籤/搜索