Spring學習 ----- 理解SpringIoC

SpringIoC


強依賴關係

在這裏插入圖片描述
現在有兩個類,類A和類B,其中A類中有一個fun方法,B類向調用這個方法有什麼辦法呢?首先fun是一個普通方法,要調用必然要有A類的對象。因此可以這樣:
在這裏插入圖片描述

但這樣的話,A和B之間就會產生一種關係,一種強依賴關係,B類是依賴於A的也就是說沒有A類這個對象它就調用不了A類的方法。

而Ioc就是爲了降低這種依賴而生的。那麼如何降低依賴呢?

控制反轉

Inversion of Control,縮寫爲IoC,譯爲控制反轉,是面向對象編程的一種設計原則。目的是用來降低代碼之間的耦合度。

  • 剛開始創建對象的權利在B類中,或者說在程序中,也就是說由程序來主動創建對象
  • 但有了控制反轉就不一樣了,A類和B類都無需自己創建對象了。都統統交給容器。容器來管理對象的整個生命週期,和對象之間的關係。

這便是控制反轉,反轉的是一種權利,一種創建對象的權利。

雖然程序不用創建對象了,交由了Spring容器,但程序要用對象啊,這樣才能調用方法,這一點Spring自然是明白的,因此Spring又有一個依賴注入技術。

依賴注入

在上述情景中B類需要A類的對象,你不用自己new了,Spring容器來給你注入一個,就像打針一樣,這樣你就有A類的對象了,這樣的話,你和A類也沒多大關係了,這個A類的對象是容器給你的,又不是你new的。

在這裏插入圖片描述

依賴注入的優點
  • 每個類都會將自己註冊在容器中,由容器統一管理。
  • 程序需要什麼資源(哪個類的對象)容器就給你提供一個,無需自己創建。
  • 重複利用,提高了對象的利用率。
  • 降低了程序間的耦合度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章