面試 spring ioc實現原理

2021-09-13 08:28:15 字數 670 閱讀 6657

首先載入乙個spring的容器beanfactory,beanfactory的構造方法會建立乙個實現了resource介面例項物件。resource物件通過setconfiguration()方法設定spring配置檔案位置。resource物件有三種實現

分別是fileresource,url resource,classpathresource。分別獲取檔案,網路資源,專案路徑下資源。

resource物件載入完成後,通過乙個super關鍵字建立容器。如果有父類容器,會使用父類容器。否則新建乙個容器。

容器建立完成後,開始載入配置檔案。beanfactory通過乙個getinputstream方法拿到配置檔案的輸入流。在載入之前,需要驗證xml的正確性和驗證模式。通過解析配置的頭標籤。採用dtd或者xsd模式

(dtd使用其他規範或xsd(xml語法))如果不是dtd就使用xsd。

將配置檔案的資訊轉化為document物件。document物件負責將類資訊轉化為spring的特殊結構beandefintion.beandefination會儲存bean的屬性,是否懶載入,是否單例,是否抽象類,是否私有類等

將收集到的所有bean存到乙個currenthashmap中,用beanname做key,beandefintion作為value。 如果有相同的key值,並且spring不允許重名。就丟擲異常。否則覆蓋原來的物件

Spring IOC實現原理

ioc 控制反轉,通俗來說就是把物件的建立不是通過new的方式實現,而是交給spring配置檔案來建立類的物件。開發思想 高內聚,低耦合 ioc實現原理 需求 實現在userservlet中來得到userservice類的物件 第一步 建立xml配置檔案,配置要建立的物件類userservice 第...

SpringIOC實現原理

假設我們設計一輛汽車 先設計輪子,然後根據輪子大小設計底盤,接著根據底盤設計車身,最後根據車身設計好整個汽車。這裡就出現了乙個 依賴 關係 汽車依賴車身,車身依賴底盤,底盤依賴輪子。這樣的設計看起來沒問題,但是可維護性卻很低。假設設計完工之後,上司卻突然說根據市場需求的變動,要我們把車子的輪子設計都...

手寫SpringIOC 實現原理

spring ioc 指的是控制反轉,ioc容器負責例項化 定位 配置應用程式中的物件及建立這些物件間的依賴。交由spring來管理這些,實現解耦 使用反射機制 xml技術 手寫spring專題 xml方式注入bean 手寫spring 專題xml 方式注入 bean publicclass xml...