2020最新詳解Spring入門之"IoC控制反轉"...

詳解Spring入門之"IoC控制反轉":

框架的學習對於程序員來說十分重要,Spring在框架中有着舉足輕重的地位,因爲現在對於它的使用也還是十分的廣泛。
在Spring基礎上開發的Springboot等框架在近幾年流行程度十分火熱,所以我們學習Spring框架十分有必要。
當我們開始接觸Spring框架之後,瞭解了它是一個輕量級的框架,以**“IoC""AOP”**爲內核,有着很多優點,如:簡單可測試鬆耦合…當我們配置好Spring環境後(5+1jar包)之後,我們要重點理解Spring框架的思想以及工作原理。


這就需要我們必須理解好**"IoC"控制反轉**的概念:
首先我們知道,沒有學習框架之前,“萬物皆可new”,通過new創建一個一個對象,可是這樣有一個問題:這樣做對象與對象之間的關係聯繫緊密,耦合性太大不利於後期維護
由此我們需要學習Spring,Spring的思想就是:Spring就是一個大工廠(容器),我們通過編寫配置文件等操作,這個大工廠就創建了一個個對象(bean),工廠裏就有對象了,並且這個Spring大工廠來幫我們管理這一個個對象。當我們需要這些對象時,我們就去這個大工廠裏取,耦合性降低了,利於維護。
原來創建對象的是調用者通過new的方式,可是有了Spring之後,這個行爲的控制權交給了Spring容器,這個"控制權"發生了"反轉",這就是"控制反轉IoC"的理解。


下面通過一個入門程序深入理解:

1.定義一個學生類:有三個屬性,定義setter和getter方法,重寫tostring方法。

在這裏插入圖片描述

2.src目錄下編寫xml配置文件,命名一般爲applicationContext.xml:
通過標籤來創建對象(相當於原來的new)。
id:唯一標識:意思就是命名一個唯一的標識名字,當取出這個對象時就靠這id。
class:指向的那個類,格式:包名.類名。
通過定義屬性:
name:Student中的變量名,有no,name,age。
value:給屬性賦值。(此操作就相當於原來的通過set方法爲屬性賦值)

在這裏插入圖片描述

3.取出Spring中的對象:
第一步:初始化Spring容器,加載我們剛纔寫的配置文件。意思可以理解爲開闢了一個容器來裝對象,讀取了xml配置文件。
第二步:容器通過getBean方法(傳入id名)獲取指定的對象,獲取後爲Object類型,必須強轉。
第三步:輸出對象,因爲重寫了tostring方法,所以輸出了屬性信息。
這就意味着,我們以後創建對象,就去xml配置文件裏去寫就好了,當我們需要時,我們初始化Spring容器讀取配置文件,通過id取出就好了。

在這裏插入圖片描述


這個時候我們再來引入一個概念:DI(依賴注入):這個概念和IoC(控制反轉是一樣的),只不過就是從另一個角度進行描述的,我們可以這樣理解:我們通過定義value爲name注入了特定值,而name又爲id爲student的這個對象注入了屬性值,這個student的bean又爲Spring注入了對象,也就是依賴注入。


在上述代碼基礎上添加一些功能:
1.定義一個課程接口,有一個learn方法:
在這裏插入圖片描述
2.定義兩個類實現接口,重寫方法:
在這裏插入圖片描述

3.編寫配置文件:在這裏插入圖片描述
4.在Student類中加入learn方法:在這裏插入圖片描述
5.通過容器獲取bean,再調用learn方法。在這裏插入圖片描述


我們以前編寫代碼時如果用new就需要一個課程new出來一個,再或者編寫一個靜態工廠的方式,但是我們學習了Spring框架後,就變得容易了很多,在工廠裏配置好,再從工廠裏拿出來就可以。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章