欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring框架IOC容器底層原理詳解

 更新時間:2022年07月29日 15:48:19   作者:·~簡單就好  
在java當中一個類想要使用另一個類的方法,就必須在這個類當中創(chuàng)建這個類的對象,Spring將創(chuàng)建對象的權(quán)利給了IOC,在IOC當中創(chuàng)建了ABC三個對象,那么我們我們其他的類只需要調(diào)用集合,大大的解決了程序耦合性的問題

1、什么是IOC

IOC – Inverse of Control,控制反轉(zhuǎn),將對象的創(chuàng)建權(quán)力反轉(zhuǎn)給Spring框架!

在java當中一個類想要使用另一個類的方法,就必須在這個類當中創(chuàng)建這個類的對象,那么可能會出現(xiàn)如下情況, 比如A類當中創(chuàng)建著B對象,B類當中有C對象,C類當中有A對象,這個如果一個類出了問題,那么可能會導致這個框架出現(xiàn)問題。 Spring 將創(chuàng)建對象的權(quán)利給了IOC,在IOC當中創(chuàng)建了ABC三個對象嗎,那么我們我們其他的類只需要調(diào)用集合, 大大的解決了程序耦合性的問題。

控制反轉(zhuǎn)(Inversion of Control,縮寫為IoC),是面向?qū)ο缶幊讨械囊环N設(shè)計原則,可以用來減低計算機代碼之間的耦合度。

解決問題:使用IOC可以解決程序耦合性高的問題。

2、IOC容器的底層原理

IOC的實現(xiàn),依賴于以下3門技術(shù)

① dom4j解析xml文檔;

② 工廠模式;

③ 采用反射設(shè)計模式創(chuàng)建對象

首先我們需要講一下什么是工廠模式

在當前情況之下A類想要調(diào)用B類就必須自己在自己的內(nèi)部新建B類的對象,這樣的耦合度太高,那我們?nèi)绾谓档婉詈隙鹊哪兀?/p>

創(chuàng)建一個工廠類,這樣就能夠使得A和B的耦合度降低到最小值

3、那么上邊提到的三種技術(shù)如何實現(xiàn)IOC的呢

第一步:xml配置文件,配置創(chuàng)建對象

<bean id="demo" class="com.qcby.service.Demo" />

第二步:創(chuàng)建工廠類(ioc的核心原理)

public class DemoFactory {
    //利用dom4j得到name所對應(yīng)的value值
   public static Demo getDemo() throws Exception {
       //利用dom4j得到name所對應(yīng)的value值
       String value="class路徑";
       //通過反射創(chuàng)建對象
       Class clazz = Class.forName(value);
       //返回并創(chuàng)建demo對象
       return (Demo) clazz.newInstance();
   }
}

4、IOC(接口)

1.IOC思想是基于IOC容器完成的,IOC的底層就是對象工廠

2.Spring里邊提供了IOC容器的實現(xiàn)的兩種方式

(1) BeanFactroy:IOC容器是Spring內(nèi)部的使用接口,不提供給開發(fā)人員使用

BeanFactroy:加載配置文件的時候不會去創(chuàng)建對象,在使用對象的時候才會去創(chuàng)建對

(2)ApplicationContext:BeanFactory接口的子接口,提供了更多更強大的功能,一般由開發(fā)人員進行使用

到此這篇關(guān)于Spring框架IOC容器底層原理詳解的文章就介紹到這了,更多相關(guān)Spring IOC容器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?Boot指標監(jiān)控及日志管理示例詳解

    Spring?Boot指標監(jiān)控及日志管理示例詳解

    Spring Boot Actuator可以幫助程序員監(jiān)控和管理SpringBoot應(yīng)用,比如健康檢查、內(nèi)存使用情況統(tǒng)計、線程使用情況統(tǒng)計等,這篇文章主要介紹了Spring?Boot指標監(jiān)控及日志管理,需要的朋友可以參考下
    2023-11-11
  • Java JVM編譯策略案例詳解

    Java JVM編譯策略案例詳解

    這篇文章主要介紹了Java JVM編譯策略案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 如何使用Java爬蟲批量爬取圖片

    如何使用Java爬蟲批量爬取圖片

    這篇文章主要介紹了如何使用Java爬蟲批量爬取圖片,對于爬蟲的入門來說,圖片相對來說是比較容易獲取的,因為大部分圖片都不是敏感數(shù)據(jù),所以不會遇到什么反爬措施,對于入門爬蟲來說是比較合適的,需要的朋友可以參考下
    2023-04-04
  • swagger的請求參數(shù)不顯示,@Apimodel的坑點及解決

    swagger的請求參數(shù)不顯示,@Apimodel的坑點及解決

    這篇文章主要介紹了swagger的請求參數(shù)不顯示,@Apimodel的坑點及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java實現(xiàn)學生管理系統(tǒng)(IO版)

    Java實現(xiàn)學生管理系統(tǒng)(IO版)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Maven引用自定義jar包方式

    Maven引用自定義jar包方式

    這篇文章主要介紹了Maven引用自定義jar包方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot+thymeleaf+ajax實現(xiàn)局部刷新詳情

    SpringBoot+thymeleaf+ajax實現(xiàn)局部刷新詳情

    這篇文章主要介紹了SpringBoot+thymeleaf+ajax實現(xiàn)局部刷新詳情,文章圍繞主題展開詳細的內(nèi)容介紹具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Java實現(xiàn)五子棋單機版

    Java實現(xiàn)五子棋單機版

    這篇文章主要為大家詳細介紹了Java實現(xiàn)五子棋單機版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • java 一個類實現(xiàn)兩個接口的案例

    java 一個類實現(xiàn)兩個接口的案例

    這篇文章主要介紹了java 一個類實現(xiàn)兩個接口的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 解決spring-boot-maven-plugin報紅的問題

    解決spring-boot-maven-plugin報紅的問題

    這篇文章主要給大家介紹一下如何解決spring-boot-maven-plugin報紅的問題,文中通過圖文講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-08-08

最新評論