真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringIOC知識點有哪些

這篇文章給大家介紹Spring IOC知識點有哪些,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供宜賓網(wǎng)站建設(shè)、宜賓做網(wǎng)站、宜賓網(wǎng)站設(shè)計、宜賓網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、宜賓企業(yè)網(wǎng)站模板建站服務(wù),10年宜賓做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

廣義的 IOC

在這之前,我們先記住一句話。好萊塢原則:Don’t call me, we will call you. 即“不用打電話過來,我們會打給你”。

控制反轉(zhuǎn)(Inversion of Control,簡稱IoC),是面向?qū)ο缶幊讨械囊环N設(shè)計原則,可以用來減低計算機代碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),還有一種方式叫“依賴查找”(Dependency Lookup)。通過控制反轉(zhuǎn),對象在被創(chuàng)建的時候,由一個調(diào)控系統(tǒng)內(nèi)所有對象的外界實體,將其所依賴的對象的引用傳遞(注入)給它。

兩種實現(xiàn):依賴查找(DL)和依賴注入(DI)。

IOC 和 DI 、DL 的關(guān)系:

Spring IOC知識點有哪些

DI(Dependency Injection) 是 Spring 使用的方式,容器負責組件的裝配。

DL(Dependency Lookup)已經(jīng)被拋棄。

IOC容器的原理

IOC容器其實就是一個大工廠,它用來管理我們所有的對象以及依賴關(guān)系。

原理就是通過Java的反射技術(shù)來實現(xiàn)的!通過反射我們可以獲取類的所有信息(成員變量、類名等等等)!

再通過配置文件(xml)或者注解來描述類與類之間的關(guān)系

我們就可以通過這些配置信息和反射技術(shù)來構(gòu)建出對應(yīng)的對象和依賴關(guān)系了!

我們簡單來看看實際Spring IOC容器是怎么實現(xiàn)對象的創(chuàng)建和依賴的:

Spring IOC知識點有哪些

  1. 根據(jù)Bean配置信息在容器內(nèi)部創(chuàng)建Bean定義注冊表

  2. 根據(jù)注冊表加載、實例化bean、建立Bean與Bean之間的依賴關(guān)系

  3. 將這些準備就緒的Bean放到Map緩存池中,等待應(yīng)用程序調(diào)用

Spring容器(Bean工廠)可簡單分成兩種:

BeanFactory

  • 這是最基礎(chǔ)、面向Spring的

ApplicationContext

  • ApplicationContext是BeanFactory的子類

沒有特殊要求的情況下,應(yīng)該使用ApplicationContext完成。因為BeanFactory能完成的事情,ApplicationContext都能完成,并且提供了更多接近現(xiàn)在開發(fā)的功能。

對IOC的理解

首先,IOC控制反轉(zhuǎn)

誰控制誰,控制什么,什么是反轉(zhuǎn)(有反轉(zhuǎn)就應(yīng)該有正轉(zhuǎn)了)

誰控制誰,控制什么:

在之前,沒有IOC時,我們直接在對象內(nèi)部通過new進行創(chuàng)建對象,是程序主動去創(chuàng)建依賴對象;

而現(xiàn)在,是由IOC專門一個容器來創(chuàng)建這些對象,即由Ioc容器來控制對 象的創(chuàng)建;

誰控制誰?當然是IOC容器控制了對象;控制什么?那就是主要控制了外部資源獲?。ú恢皇菍ο筮€包括比如文件等)。

所謂反轉(zhuǎn):

有反轉(zhuǎn)就應(yīng)該有正轉(zhuǎn),傳統(tǒng)應(yīng)用程序是由我們自己在對象中主動控制去直接獲取依賴對象,也就是正轉(zhuǎn);

而所謂的反轉(zhuǎn),其實是反轉(zhuǎn)的控制權(quán),由 Spring 來控制對象的生命周期,那么對象的控制就完全脫離了我們的控制,控制權(quán)交給了Spring 。這個反轉(zhuǎn)是指:我們由對象的控制者變成了 IOC 的被動控制者。

其次,說到IOC就會想到DI 依賴注入(IOC 是通過DI來實現(xiàn)的),那么:

誰依賴誰,為什么需要依賴;誰注入誰,注入了什么

誰依賴誰:A對象 依賴于 IOC 容器。

為什么需要依賴:A對象需要 IOC 容器提供對象需要的數(shù)據(jù)、B對象 等外部資源,沒有這些資源不能完成業(yè)務(wù)處理。

誰注入誰:IOC 容器注入 A對象。

注入了什么:IOC 容器將 A對象 需要的數(shù)據(jù)、B對象等外部資源按需注入給對象。

好處: 降低了開發(fā)的成本,提高了代碼復(fù)用率、軟件的靈活性。

IOC:不是什么技術(shù),而是一種設(shè)計思想。在 Spring 開發(fā)中,由 IOC 容器控制對象的創(chuàng)建、初始化、銷毀等。這也就實現(xiàn)了對象控制權(quán)的反轉(zhuǎn),由我們對對象的控制轉(zhuǎn)變成了Spring IOC 對對象的控制。

DI:是 IOC 的具體實現(xiàn)。程序把依賴交給容器,容器幫你管理依賴。

關(guān)于Spring IOC知識點有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


本文標題:SpringIOC知識點有哪些
文章位置:http://weahome.cn/article/pggcjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部