国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring核心思想

這篇具有很好參考價值的文章主要介紹了Spring核心思想。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??Spring是什么


通常所說的 Spring 指的是 Spring Framework(Spring 框架)

Spring
是包含了眾多工具方法的 IOC 容器

  • 將眾多工具方法的 IOC 容器拆解為三部分
    • 眾多工具方法
    • IOC
    • 容器

眾多工具方法

  • 將扳手??理解為一個工具
    • 扳手??可以用來打螺絲(方法)
    • 扳手??可以用來敲核桃(方法)

容器

  • 將水杯理解為容器
    • 可以用水杯裝水
    • 可以用水杯裝果汁
    • 可以用水杯裝牛奶

IOC(Inversion Of Control)


IOC(Inversion Of Control)控制反轉(zhuǎn)

控制反轉(zhuǎn)的內(nèi)容是啥?
對象的生命周期

為什么需要控制反轉(zhuǎn)?(控制反轉(zhuǎn)的作用)
解耦合

舉個栗子??

現(xiàn)在需要編寫一段代碼來模擬實現(xiàn)一輛"車"??

  • 劃分為4個部分
    • 輪胎
    • 底座
    • 車身

Spring核心思想

實現(xiàn)思路??

定義Car類

public class Car {
    private Framework framework;

    public Car() {
        framework = new Framework();
    }

    public void init() {
        framework.init();
    }
}

定義Framework類

public class Framework {
    private Bottom bottom;

    public Framework() {
        bottom = new Bottom();
    }

    public void init() {
        bottom.init();
    }
}

定義Bottom類

public class Bottom {
    private Tyre tyre;

    public Bottom() {
        tyre = new Tyre();
    }

    public void init() {
        tyre.init();
    }
}

定義Tyre類

public class Tyre {
    private int size = 20;

    public Tyre() {

    }

    public void init() {
        System.out.println("執(zhí)行 Init() 方法, 輪胎的尺寸為 : " + this.size);
    }
}

定義啟動類

public class Application {

    public static void main(String[] args) {
        Car car = new Car();
        car.init();
    }

}

可以看到, 上述代碼描述的"車"的輪胎大小是固定的
如果需要修改輪子的大小, 就需要對代碼進行改動

  • 兩種方式
    • 傳統(tǒng)實現(xiàn)思路
    • IOC實現(xiàn)思路

傳統(tǒng)實現(xiàn)思路??

定義Car類

public class Car {
    private Framework framework;

    public Car(int size) {
        framework = new Framework(size);
    }

    public void init() {
        framework.init();
    }
}

定義Framework類

public class Framework {
    private Bottom bottom;

    public Framework(int size) {
        bottom = new Bottom(size);
    }

    public void init() {
        bottom.init();
    }
}

定義Bottom類

public class Bottom {
    private Tyre tyre;

    public Bottom(int size) {
        tyre = new Tyre(size);
    }

    public void init() {
        tyre.init();
    }
}

定義Tyre類

public class Tyre {
    private int size = 20;

    public Tyre(int size) {
        this.size = size;
    }

    public void init() {
        System.out.println("執(zhí)行 Init() 方法, 輪胎的尺寸為 : " + this.size);
    }
}

定義啟動類

public class Application {

    public static void main(String[] args) {
        int size = 12;

        Car car = new Car(size);
        car.init();
    }

}

IOC實現(xiàn)思路??

定義Car類

public class Car {
    private Framework framework;

    public Car(Framework framework) {
        this.framework = framework;
    }

    public void init() {
        framework.init();
    }
}

定義Framework類

public class Framework {
    private Bottom bottom;

    public Framework(Bottom bottom) {
        this.bottom = bottom;
    }

    public void init() {
        bottom.init();
    }
}

定義Bottom類

public class Bottom {
    private Tyre tyre;

    public Bottom(Tyre tyre) {
        this.tyre = tyre;
    }

    public void init() {
        tyre.init();
    }
}

定義Tyre類

public class Tyre {
    private int size = 20;

    public Tyre(int size) {
        this.size = size;
    }

    public void init() {
        System.out.println("執(zhí)行 Init() 方法, 輪胎的尺寸為 : " + this.size);
    }
}

定義啟動類

public class Application {
    
    public static void main(String[] args) {
        Tyre tyre = new Tyre(30);
        Bottom bottom = new Bottom(tyre);
        Framework framework = new Framework(bottom);
        Car car = new Car(framework);
        car.init();
    }
    
}

對比傳統(tǒng)實現(xiàn)思路與IOC實現(xiàn)思路??

Spring核心思想

控制反轉(zhuǎn)的內(nèi)容是啥?

  • 傳統(tǒng)實現(xiàn)思路
    • 自己控制對象的生命周期
    • this.tyre = new Tyre(size);
  • IOC實現(xiàn)思路
    • 將對象生命周期的控制權(quán)轉(zhuǎn)交給他人(控制反轉(zhuǎn), 自己控制 → 他人控制)
    • this.tyre = tyre;

為什么需要控制反轉(zhuǎn)?(控制反轉(zhuǎn)的作用)

  • 傳統(tǒng)實現(xiàn)思路
    • 對車子的需求修改時, 需要對每個方法都進行修改(耦合度較高)
  • IOC實現(xiàn)思路
    • 對車子的需求修改時, 只需要修改對應(yīng)的方法即可(解耦合)

Spring核心思想

A類引用B類, B類引用C類, C類引用D類…

傳統(tǒng)實現(xiàn)思路是 new
但這樣的實現(xiàn)耦合度較高(當被引用的類的構(gòu)造方法發(fā)生變化, 則整個調(diào)用鏈都需要進行改變)

IOC(控制反轉(zhuǎn))
不再 new, 而是傳入當前對象
此時的調(diào)用鏈仍然是A類引用B類, B類引用C類, C類引用D類…
但當D發(fā)生改變時, 整個調(diào)用鏈的代碼不用全部進行修改, 從而解決了耦合度較高的問題
Spring核心思想

Spring的基本功能


Spring 的本質(zhì)是一個容器
容器的基本功能有兩個

  • 將對象存入到容器
  • 從容器中取出對象

舉個栗子??

水杯是一個容器

  • 用水杯來存水(將對象存入到容器)
  • 喝水杯中的水(從容器中取出對象)

談一談IOC與DI


IOC(Inversion Of control)控制反轉(zhuǎn)
將對象的生命周期托管給他人

DI(Dependency Injection)依賴注入
在程序運行期間, 動態(tài)的將某個對象引入到當前的一種機制

public Bottom(Tyre tyre) {
    this.tyre = tyre;
}

以這段代碼為例

  • 將對象的生命周期托管給他人(IOC, this.tyre = new Tyre() → this.tyre = tyre)
  • 在程序運行期間, 將 tyre 引入到當前(DI)

IOC 與 DI 沒有本質(zhì)上的區(qū)別, 只是從不同的角度來去描述同一個問題

  • IOC 側(cè)重的是想法
  • DI 側(cè)重的是具體的實現(xiàn)

舉個栗子??

我今天中午想去外面吃(IOC → 想法)
我去外面吃了隆江豬腳飯(DI → 具體實現(xiàn))

??結(jié)尾

創(chuàng)作不易,如果對您有幫助,希望您能點個免費的贊??
大家有什么不太理解的,可以私信或者評論區(qū)留言,一起加油文章來源地址http://www.zghlxwxcb.cn/news/detail-480115.html

到了這里,關(guān)于Spring核心思想的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring框架核心與設(shè)計思想

    Spring框架核心與設(shè)計思想

    我們一般所說的Spring指的是Spring Framework(Spring 框架),它是一個開源的框架,Spring支持廣泛的應(yīng)用場景,它可以讓Java企業(yè)級的應(yīng)用程序開發(fā)變得更簡單,官方一點的回答:spring是J2EE應(yīng)用程序框架,是輕量級的IoC和AOP的容器框架,主要是針對javaBean的生命周期進行管理的輕量級

    2023年04月15日
    瀏覽(35)
  • 【Spring】學(xué)習(xí)Spring需要掌握的核心設(shè)計思想

    【Spring】學(xué)習(xí)Spring需要掌握的核心設(shè)計思想

    目錄 一、Spring是什么 二、什么是IoC容器 1、什么是容器 2、什么是IoC? ?3、Spring IoC 4、DI(依賴注入) 4.1、IoC和DI的區(qū)別 5、 DL(依賴查找) 我們通常所說的Spring指的是Spring Framework(Framework的意思就是框架),它是一個開源的框架,有著龐大的社區(qū),這就是它之所以能長久不

    2024年02月14日
    瀏覽(31)
  • 深入解析Spring基本概念和核心思想

    使用spring后,被spring管理的類,不需要再new。 要想類被spring管理,則需要通過bean的方式,把類引入到spirng的配置文件中。 Ioc容器 簡單的理解就是: 實現(xiàn)IoC思想,并提供對象創(chuàng)建,對象裝配以及對象生命周期管理的軟件就是Ioc容器 IoC理解 應(yīng)用程序無需主動new對象,而是描述

    2024年02月12日
    瀏覽(50)
  • Spring框架概述及核心設(shè)計思想

    Spring框架概述及核心設(shè)計思想

    我們通常所說的 Spring 指的是 Spring Framework(Spring 框架),它是?個開源框架,有著活躍而龐大的社區(qū),這就是它之所以能長久不衰的原因;Spring 支持廣泛的應(yīng)用場景,它可以讓 Java 企業(yè)級的應(yīng)用程序開發(fā)起來更簡單。 用?句話概括 Spring: Spring 框架是包含了眾多工具方法的

    2024年02月16日
    瀏覽(24)
  • Spring核心思想之IOC和AOP

    Spring核心思想之IOC和AOP

    IOC和AOP不是Spring提出的,在spring之前就已經(jīng)存在,只不過更偏向于理論化,Spring在技術(shù)層次把這兩個思想做了?常好的實現(xiàn)(Java)。 什么是IoC? IoC Inversion of Control (控制反轉(zhuǎn)/反轉(zhuǎn)控制),注意它是?個 技術(shù)思想 ,不是?個技術(shù)實現(xiàn)。 描述的事情 :Java開發(fā)領(lǐng)域?qū)ο蟮膭?chuàng)建,

    2024年02月09日
    瀏覽(22)
  • 【JavaEE進階】Spring核心與設(shè)計思想

    【JavaEE進階】Spring核心與設(shè)計思想

    我們通常所說的 Spring 指的是 Spring Framework (Spring 框架),它是一個輕量級的 Java 開源框架,有著活躍龐?的社區(qū)。Spring 是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的,不僅?持?泛的應(yīng)?場景,還讓 Java 企業(yè)級的應(yīng)?程序開發(fā)更加簡單。 如何簡單地使??句話概括 Spring:

    2024年02月13日
    瀏覽(33)
  • 【Java EE】Spring核心思想(一)——IOC

    【Java EE】Spring核心思想(一)——IOC

    通過前?的學(xué)習(xí), 我們知道了Spring是?個開源框架, 他讓我們的開發(fā)更加簡單. 他?持?泛的應(yīng)?場 景, 有著活躍?龐?的社區(qū), 這也是Spring能夠?久不衰的原因. 但是這個概念相對來說, 還是?較抽象. 我們??句更具體的話來概括Spring, 那就是: Spring 是包含了眾多?具?法的

    2024年04月23日
    瀏覽(20)
  • 【JavaEE進階】——第二節(jié).Spring核心和設(shè)計思想

    【JavaEE進階】——第二節(jié).Spring核心和設(shè)計思想

    文章目錄 前言 一、Spring是什么? 二、什么是容器? 三、什么是IoC? 3.1 初始loC 3.2 舉例解釋loC 3.3?Spring IoC思想的體現(xiàn) 四、什么是DI? 4.1DI的概念 4.2?Ioc和DI的區(qū)別 總結(jié) 今天我們將進入到有關(guān)spring的認識當中,要使用它的前提就是要認識并熟悉它,上一節(jié)我們介紹了有關(guān)mave

    2023年04月18日
    瀏覽(26)
  • 【Spring】Spring有什么用?Spring核心與設(shè)計思想之IOC與DI

    【Spring】Spring有什么用?Spring核心與設(shè)計思想之IOC與DI

    ?Spring是一個開源的、輕量級的、面向企業(yè)級的Java應(yīng)用框架。它提供了一種基于依賴注入和面向切面編程的方式,幫助開發(fā)者構(gòu)建高效、可擴展的應(yīng)用程序。 ?具體來說, Spring可以看作一個包含眾多工具方法的IOC容器。 Spring的出現(xiàn)是為了讓開發(fā)更簡單~ 那么問題就很明確了

    2024年02月10日
    瀏覽(24)
  • 【YOLO】物體識別算法的核心思想

    【YOLO】物體識別算法的核心思想

    YOLO是目前比較流行的物體檢測算法,有著體積小,檢測準確度高的強大優(yōu)點。這里對YOLO的核心思想知識點,使用可視化的方法做一總結(jié)。 YOLO是用于識別圖像中的物體的網(wǎng)絡(luò)。這類網(wǎng)絡(luò)解決的問題通常是找到圖片中是否存在某種物體(如是否有狗或人),以及找到物體在圖片

    2024年02月06日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包