Spring框架核心解析

Spring是一個輕量級的、非侵入式的容器框架;對Bean對象的生命週期進行管理。

Spring框架的核心:IOC(控制反轉)、DI(依賴注入)、AOP(面向切面編程)。

(1) IOC:控制反轉。

                      傳統的Java開發過程中,當需要一個對象的時候,我們需要自己new或者getInstance等直接或間接調用構造方法創建一個對象;而在Spring容器中,Spring容器利用  工廠模式(BeanFactory)爲我們創建了所需要的對象,使用時無須自己創建,直接調用Spring爲我們創建的對象即可,這就是控制反轉的思想。

                      優點:簡化了我們對對象的管理,交給了Spring管理;程序員不用再自己創建對象,需要時直接從Spring中取。由主動創建對象變成了被動接收對象,控制權反轉,減輕了程序員的代碼量,提高了開發效率。打個比方:IOC就像現在得訂餐APP,以前我們吃飯需要自己去做,去New一頓飯出來;現在我們有了訂餐APP(Spring),我們只需要登錄這個APP,在APP訂餐頁面applicationtext.xml(Spring配置文件)填寫你想吃的飯(也就是Bean對象),然後就可以預定你要吃的飯,想要豬頭肉就會給你送豬頭肉,想要紅燒肉就會送紅燒肉;各種菜就像是Property,這樣我們坐在家中就可以吃到飯了,不用自己再動手去做了。

(2)DI:依賴注入。

                     Spring框架爲我們提供了三種注入方式,分別是set注入,構造方法注入,接口注入。

                     Spring使用JavaBean對象的Set方法或者帶參數的構造方法爲我們創建所需要的對象時將其屬性自動設置爲所需要的值的過程就是依賴注入的思想。

                     優點:有了Spring容器,當我們想要創建一個Service時,就可以直接從Spring容器中拿;或者想在Service中調用Dao也不需要在Service裏創建,因爲Spring會從容器中取出Dao,並注入到Service裏,也就是依賴注入。

(3)AOP:面向切面編程。

                      在面向對象編程(OOP)中,我們將事物縱向抽象成一個個的對象。而在面向切面編程中,我們將一個個對象某些類似的方面橫向抽象成一個切面,對這個切面進行一些如:權限驗證,事務管理,記錄日誌等公用操作處理的過程就是面向切面編程的思想。

總結:使用Spring的目的:就是讓對象與對象或者模塊與模塊之間的關係沒有通過代碼關聯,都是通過配置類說明管理的(Spring根據這些配置內部通過反射去動態的組裝對象)。

注:控制反轉和依賴注入的簡單理解:

控制反轉IOC:當某個角色需要調用另一個角色的協助時,在傳統的程序設計中,通常由調用者創建被調用者的實例,如果創建被調用者實例的工作 不再由調用者來完成,而是由外部容器來完成。

依賴注入DI:創建被調用者實例的工作通常由外部容器來完成,然後注入調用者,因此也稱爲依賴注入。




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