依賴倒置、依賴注入和控制反轉傻傻分不清楚?

依賴倒置#

啥是依賴倒置?依賴倒置是SOLID原則之一,詞的字面意思就是將依賴關係的倒置。git

其實依賴倒置你們早就會了,這個實際上就是面向接口編程。舉個例子,如今電子產品更新換代快,可能沒過多久我們就想換一臺電腦玩玩。即便電腦的品牌不一樣,但咱們仍是能夠正常使用,總不會換個牌子就不會用了吧。spring

因此若是用代碼表示的話,咱們用接口IPC來代替具體的類,而後各個類去實現它的programming方法。數據庫

Copypublic interface IPC{
    void programming();
}

public class User {
    private IPC pc;
	//若是寫成private Dell dell;
    //那咱們換成聯想的電腦就麻煩了
    public User(IPC pc) {
        this.pc = pc;
    }
    public void usePC(){
        pc.programming();
    }
}

爲啥叫它倒置呢,由於編程

 

 

是否是箭頭倒過來了呢架構

依賴注入與控制反轉#

依賴注入是實現控制反轉的具體手段,這倆聽起來高大上,其實...框架

Copypublic class Main {
    public static void main(String[] args) {
        //建立對象
        Dell dell=new Dell();
        //依賴注入
        User user=new User(dell);
        user.usePC();
    }
}

依賴注入指的是不在類內部使用new來建立依賴對象,而是將其在外部建立好後,經過構造函數或者賦值函數注入進類中,也就是當參數傳進去。函數

而控制反轉就是依賴注入中說的,將依賴類實例化的控制權交給外部邏輯處理。我不心繫你這東西的建立,我只關心你提供的功能,一切都按個人標準指定好,拿來用就行。學習

好比咱們筆記本電腦的各個部分是不一樣廠家生產的,筆記本電腦廠商只需把標準給各個零件生產商,讓他們按要求生產,本身最後組裝拿來用就行了。這樣咱們就達到了解耦的目的。優化

控制反轉容器#

由於咱們在程序設計時採用了依賴注入,那麼不可避免的,咱們要在程序裏寫大量的new。但對象的建立與依賴注入跟具體的業務並沒有關係,咱們可不能夠將其抽象成框架呢?this

因而咱們就有了IOC容器或者說依賴注入框架,只須要簡單配置一下就能夠由框架自動建立對象、管理對象以及依賴注入這些本來須要咱們本身來作的事情。


SpringIOC知識導圖

這是我整理的關於springIOC的相關知識點,由於我的緣由,沒有詳細的展開進行整理,可是,只有本身整理的東西纔是本身的,你們能夠根據本身的狀況進行整理,造成本身的東西,

 

而除了ioc以外,AOP也是一個不能忽略的問題

 

可能光有這張圖對於初學者或者基礎不是特別紮實的人來講,補充起來有那麼一點困難,不要緊,文檔資源奉上


目錄

第一部分

第1章Spring 總體架構和環境搭建

第2章容器的基本實現

第3章默認標籤的解析

第4章自定 義標籤的解析

第5章bean 的加載

第6章容器的功能擴展

第7章AOP

 

 

第二部分

第8章數據庫鏈接 JDBC

第9章整合MyBatis

第10章事務

第11章SpringMVC

第12章遠程服務

第13章Spring 消息

 

第三部分

第14章Spring Boot體系原理

 

 

詳細展現

代碼詳解

 

源碼支持

 

須要這份優化思惟導圖以及上面的知識圖的老鐵,添加小助手:msbxq2020免費獲取,同步的還有相關的視頻講解以及學習文檔,還不快點行動

關注公衆號:Java架構師聯盟,每日更新技術好文

部分資料已經上傳到個人git倉庫中:有須要的能夠下載

相關文章
相關標籤/搜索