日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring IOC 知识点总结,写得太好了!

發布時間:2025/3/21 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring IOC 知识点总结,写得太好了! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

廣義的 IOC

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

控制反轉(Inversion of Control,簡稱 IoC),是面向對象編程中的一種設計原則,可以用來減低計算機代碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱 DI),還有一種方式叫“依賴查找”(Dependency Lookup)。

通過控制反轉,對象在被創建的時候,由一個調控系統內所有對象的外界實體,將其所依賴的對象的引用傳遞(注入)給它。

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

IOC 和 DI 、DL 的關系:

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

  • DL(Dependency Lookup)已經被拋棄。

IOC 容器的原理

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

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

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

  • 我們就可以通過這些配置信息和反射技術來構建出對應的對象和依賴關系了!

我們簡單來看看實際?Spring?IOC 容器是怎么實現對象的創建和依賴的:

1. 根據 Bean 配置信息在容器內部創建 Bean 定義注冊表

2. 根據注冊表加載、實例化 bean、建立 Bean 與 Bean 之間的依賴關系

3. 將這些準備就緒的 Bean 放到 Map 緩存池中,等待應用程序調用

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

  • BeanFactory

  • 這是最基礎、面向 Spring 的

  • ApplicationContext

  • ApplicationContext 是 BeanFactory 的子類

沒有特殊要求的情況下,應該使用 ApplicationContext 完成。

因為 BeanFactory 能完成的事情,ApplicationContext 都能完成,并且提供了更多接近現在開發的功能。

對 IOC 的理解

首先,IOC 控制反轉

誰控制誰,控制什么,什么是反轉(有反轉就應該有正轉了)

誰控制誰,控制什么:

  • 在之前,沒有 IOC 時,我們直接在對象內部通過 new 進行創建對象,是程序主動去創建依賴對象;

  • 而現在,是由 IOC 專門一個容器來創建這些對象,即由 Ioc 容器來控制對 象的創建;

  • 誰控制誰?當然是 IOC 容器控制了對象;控制什么?那就是主要控制了外部資源獲取(不只是對象還包括比如文件等)。

所謂反轉:

  • 有反轉就應該有正轉,傳統應用程序是由我們自己在對象中主動控制去直接獲取依賴對象,也就是正轉;

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

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

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

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

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

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

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

總結

IOC:不是什么技術,而是一種設計思想。在?Spring?開發中,由 IOC 容器控制對象的創建、初始化、銷毀等。這也就實現了對象控制權的反轉,由我們對對象的控制轉變成了Spring?IOC 對對象的控制。

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

作者:潘佳琪

https://segmentfault.com/a/1190000022015914

總結

以上是生活随笔為你收集整理的Spring IOC 知识点总结,写得太好了!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。