Spring是什麼這個問題解釋的好

Spring是什麼
spring是一個開源的java框架,集成了各種主流的技術包括web mvc,orm,ejb,rmi,javamail等
他就象一個粘合濟,在實際項目中,將前後臺程序粘合在一起,構建出一個完整的系統。

spring中的各個組件也可獨立使用,你可以在你的項目中選擇性的使用spring提供的某一部分功能

Spring的核心是ioc和aop

什麼是IOC

Inversion of Control,控制反轉或反轉控制,其和另外一個概念DI-Dependency Injection依賴注入
等價。

到底如何來理解IOC?

IOC確切的說,他是一種思想、概念,跟OOP是一種編程思想一樣,他是在大量的項目實踐中總結出來了
的一種精妙地程序設計思想。在原先的程序設計中,我們通常是通過new XXX(),其中,XXX就是某個類
的名稱,在沒有ioc思想引入時,我們程序中大量充斥着new XXX()這樣的代碼。這些代碼都需要我們程
序員手工編寫。而引入了ioc思想之後,對象的管理全部交給Spring這個容器來管理,當我們程序需要
對應類的對象時,我們直接從Spring容器裏面獲取,換句話說,就是Spring容器把產生好的對象交給了
我們的程序,這種方式就叫做注入(就跟醫生拿着可怕的針管將液體注入到我們的屁股上一樣,爲什麼
要注入,還不是你的屁股需要嘛!因爲你需要,所以我給你,這就是DI)

而IOC的深層含義就是,將原先對象產生的主動權交給了Spring容器,由Spring容器來爲我們完成對象的
new的過程,並將對象在我們需要時交給我們。

Spring正是IOC思想的一個完美產物和實踐者!

什麼是aop

Aspect Oriented Programming,面向方面編程,它也是一種編程思想,它是對OOP編程思想的一種昇華
OOP強調的是對象,而aop強調的是面(不是餃子)

那麼,什麼是面?

如果拿我們的教室做比方,那麼教室的前門和後窗就是一個面,一個截面,通過這樣的截面,將我們這塊
空間分成了室內、窗外和門外三部分。

如果拿我們吃的漢堡做比方,那麼漢堡的夾心的前後就是一個面,一個截面,通過這樣的截面,將我們的
普通麪包分成了麪包上層、夾心、麪包下層。

如果。。。

還是拿我們的程序代碼來說,
如果我們的dao用jdbc實現,那麼在dao的每一個方法裏都充斥着這樣的代碼,
 打開連接
 執行sql語句
 關閉連接
那麼,這時,我們就可以在執行sql前後做出一個截面,通過這樣的截面,將我們的程序代碼分開,將打開
連接和關閉連接交給AOP去做,我們程序員只關注執行不同sql語句部分,避免了在dao的每個方法中都要編
寫重複的打開連接和關閉連接代碼。

如果我們的dao用hibernate實現,那麼在dao的每一個方法裏都充斥着這樣的代碼
 打開session
 執行session動作
 關閉session

同理,我們就可以在執行session動作前後做出一個截面,通過這樣的截面,將我們的程序代碼分開,將打開
session和關閉session交給AOP去做,我們程序員只關注執行session動作,避免了代碼的重複豈不更好

這就是AOP,好好理解吧,那可是個漫長的思想體驗過程!祝君好運!
 

發佈了17 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章