spring的概述
spring是乙個開源的控制反轉(inversion of control,ioc)和面向切面(aop)的容器框架,它的主要目得是簡化企業開發而建立的。
從上面的簡要介紹中,我們要知道spring的核心有兩部分:
·ioc
(控制反轉):所謂控制反轉就是應用本身不負責依賴物件的建立及維護,依賴物件的建立及維護是由外部容器負責的(spring容器)。這樣控制權就由應用轉移到了外部容器(spring容器),控制權的轉移就是所謂反轉,達到了把應用和物件之間解耦。
·aop(面向切面):aop(aspect oriented programming),即面向切面程式設計,可以說是oop(object oriented programming,物件導向程式設計)的補充和完善。oop引入封裝、繼承、多型等概念來建立一種物件層次結構,用於模擬公共行為的乙個集合。不過oop允許開發者定義縱向的關係,但並不適合定義橫向的關係,例如日誌功能。日誌**往往橫向地散布在所有物件層次中,而與它對應的物件的核心功能毫無關係對於其他型別的**,如安全性、異常處理和透明的持續性也都是如此,這種散布在各處的無關的**被稱為橫切(cross cutting),在oop設計中,它導致了大量**的重複,而不利於各個模組的重用。
aop技術恰恰相反,它利用一種稱為"橫切"的技術,剖解開封裝的物件內部,並將那些影響了多個類的公共行為封裝到乙個可重用模組,並將其命名為"aspect",即切面。所謂"切面",簡單說就是那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任封裝起來,便於減少系統的重複**,降低模組之間的耦合度,並有利於未來的可操作性和可維護性。
·依賴注入(dependency injection):即元件之間的依賴關係由容器在執行期決定,形象的來說,即由容器動態的將某種依賴關係注入到元件之中. 依賴注入的目標並非為軟體系統帶來更多的功能,而是為了提公升元件重用的概率,並為系統搭建乙個靈活、可擴充套件的平台。通過依賴注入機制,我們只需要通過簡單的配置,而無需任何**就可指定目標需要的資源,完成自身的業務邏輯,而不用關心具體的資源來自何處、由誰實現.
理解di的關鍵是 "誰依賴誰,為什麼需要依賴, 誰注入誰,注入了什麼",下面來深入分析一下:
誰依賴於誰: 應用程式依賴於ioc/di容器
為什麼需要依賴: 因為反轉後,應用程式所依賴都資源都在ioc/di容器中
誰注入誰: ioc/di容器注入應用程式
注入了什麼: 注入了應用程式需要的外部資源,比如:依賴關係
·控制反轉和依賴注入之間是同乙個概念嗎?它們不是同乙個概念,但是它們是同乙個概念的不同角度的描述。
控制反轉(ioc)從 ioc容器的角度來說
依賴注入(di)從應用程式的角度來說
Spring基本概念
1.spring是乙個輕量級的容器,實現了控制反轉,依賴注入,aop,持久層,事務管理,以及封裝了其它第三方控制項的一些api.輕量級 輕量級是相比其它重量級框架而言的,spring的核心程式不到1m.容器 物件的生成,資源取得,銷毀等生命週期,以及物件與物件之間的依賴關係由容器來管理.非侵入性 儘...
spring基本概念
1 spring是乙個開源的輕量級框架 2 spring的核心內容 2.1 aop面向切面的程式設計,即對原來工程是進行擴充套件而不是修改,滿足開閉原則 2.2 ioc控制反轉,即把物件的建立交給spring來管理,比如有乙個方法,他不是靜態方法,則在呼叫他的方法的時候,需要通過關鍵字new來建立乙...
spring的基本概念
1.spring是什麼?spring是乙個開源框架,為了解決企業應用開發的複雜性而建立的,目前已不止應用於企業應用。是乙個輕量級的控制反轉 ioc 和面向切面 aop 的容器框架 從大小與開銷兩方面而言spring都是輕量的 通過控制反轉 ioc 的技術達到松耦合的目的 提供了面向切面程式設計的豐富...