spring學習日誌ioc的實現。

2021-08-31 17:13:03 字數 1149 閱讀 1898

1 :spring ioc 執行的典型流程:

i:解析配置檔案解析為beandifinition resource--解析(defaultbeandefinitiondocumentreader)--組裝(beandefinitionparserdelegate.parsebeandefinitionelement(element ele, string beanname, beandefinition containingbean))---->beandefinition(genericbeandefinition)

--註冊(defaultlistablebeanfactory)-->放入乙個concurrenthashmap中。

ii:生成bean的操作類 abstractautowirecapablebeanfactory,建立bean的簡化流程 通過反射,檢查該bean是否可以正常例項化-->通過反射,判定那些方法被過載,重寫 了-->如果有切面,返回通過cglib或者jdk生成切面物件-->沒有切面,構建正常物件,返回。

2:beanfactory :定義了ioc的基本行為的介面,

3:xmlbeanfactory : 具體的的bean構建入口類 ,位於org。

繼承 : defaultlistatablebeanfactory-->configurablelistabelbeanfactory->listtablebeanfactory-->beanfactory

載入springxml檔案的基本入口類。

用法 :

beanfactory factory=new xmlbeanfactory(new filesystemresource("knight.xml"));

主要的功能邏輯位於defaultlistatablebeanfactory中。

4:beandefinition :spring的領域物件,該介面主要定義的方法

getparentname():獲取父類beandefinition key值(通過該值生成父類beandefinition sprint 配置裡的parent屬性 );

setparentname(string parentname) :設定父類beandefinition key值

getbeanclassname():設定該beandefinition對應的類(spring 配置裡面的 class屬性)

Spring學習筆記 IoC

getbean 方法 引數為class時要保證配置檔案中bean唯一 構造器注入 通過constructor arg節點注入 工廠方法注入 很少使用 繼承 通過在bean中新增屬性parent指定繼承的父bean,也可以忽略父 bean 的 class 屬性,此時 abstract屬性 必須設為 t...

Spring學習總結IOC

ioc 控制權的反轉,應用程式不負責依賴物件的建立和維護,而是由外部容器負責建立和維護。di 依賴注入是一種ioc的實現方式,目的是建立物件並組裝物件之間的關係。bean容器初始化 本地檔案 classpath servlet或者listener listener listener class or...

spring框架Ioc學習

理解 1 在ioc沒有出現之前,如果物件a需要依賴物件b,那麼在a初始化或執行到某乙個點的時候,需要去建立或者呼叫已經建立的物件b.不管是建立還是直接呼叫,控制權都在自己手裡.2 ioc出現之後,如果物件a需要依賴物件b,這是會有乙個容器來管理這種需求,將物件b注入到物件a中,這樣乙個容器我們稱之為...