1. 程式人生 > >Spring入門(1)

Spring入門(1)

小弟最近在學Spring框架,因此打算寫幾篇部落格記錄學習的知識,打算花三天分4-5篇寫完。

1.什麼是Spring。

一個非常強大的開源框架

2.什麼是IOC,什麼是DI

IOC,反轉控制的意思,DI,依賴注入的意思。

看到有一本書上說兩者是表達一個意思,DI是IOC的另一種表達。這是不對的,應該這樣說:DI是實現IOC的一種具體方式,IOC還有另一種實現方式,叫依賴查詢,有很多弊端不流行了。流行的是通過依賴注入(DI)實現反轉控制(IOC)。

反轉控制怎麼解釋呢?先看我從書上查的概念:

反轉資源獲取的方向,容器主動的將資源推送給它所管理的元件,元件所需要做的就是選擇一種合適的方式

來接受資源。

我想到一個例子,就是乞丐(元件),只要把要飯碗(合適的方式)擺出去,有好心人(容器)就會給你錢(資源)。應該是這個道理?

IOC的演化:

最初的時候我們通過分離介面和實現。

就好比是在原始社會,我們需要吃白菜,我們需要自己去種,去施肥,去收割,依賴的介面是(白菜),但是還需要依賴它的實現(種植,施肥,收割)。吃個白菜依賴這麼多東西,不合理,麻煩。

然後出現了工廠模式:將建立的物件的工作交給響應的工廠,此時只依賴兩個:1.生產該物件的工廠,2.該物件的介面。

好比是封建社會買個白菜,我們需要白菜,去菜市場買就可以,不需要自己親自種。

最後到了IOC,我們只依賴介面,物件的建立由Spring容器給與。

好比是到了新中國,我們需要白菜,政府的扶貧部門會給主動給需要的白菜的家庭分配白菜。

AOP:面向切面程式設計

什麼是面向切面程式設計?我只聽說過面向物件程式設計啊。面向切面程式設計是對面向物件的補充完善。如果多個類有重複的程式碼,例如日誌記錄,就可以將重複的部分剝離出來,一來實現可插拔,二來方便修改維護,讓我們關注於業務邏輯的書寫。

核心業務外的程式碼被提煉出來,就像被一刀切開一樣。面向切面是spring框架非常重要的一個概念,小弟會專門寫一篇部落格總結一下。