spring5 IOC容器(XMl管理方式)

2021-10-19 16:24:25 字數 3307 閱讀 2582

1.將 bean的建立和管理交給spring進行管理

2.最終目的:其實還是為了降低**的耦合度

底層的實現:xml+工廠模式+反射

底層的實現原理**

spring中提供的兩種實現ioc容器的兩種方式:(兩個介面)

beanfactory:ioc 容器基本實現,是 spring 內部的使用介面,不建議開發人員進行使用

#@@@@@注:在載入配置檔案的時候,不進行建立物件,獲取時,建立物件

三種屬性方式注入方式:

通過set注入屬性

通過有參構造器注入屬性

p命名空間注入

(1)使用 p 命名空間注入,可以簡化基於 xml 配置方式

第一步 新增 p 命名空間在配置檔案中

第二步 進行屬性注入,在 bean 標籤裡面進行操作(其實也是通過set方式進行注入的)

"book"

class

="com.atguigu.spring5.book" p:bname=

"九陽神功"

p:bauthor=

"無名氏"

>

<

/bean>

特殊字元轉義需要用注:如果需要將字面量設定為null的話,可用null標籤或不進行設定

方式一:

方式二:

注:方式二因為要得到物件才能設定屬性,所以所在類中必須要有get方法;

對陣列、集合、等注入屬性:

陣列: 使用array標籤

list集合: 使用list標籤

map集合:使用map標籤,裡面使用entry標籤

set集合:使用set標籤

將集合注入部分抽取出來:

(1)在 spring 配置檔案中引入命名空間 util

(2)抽取出來內容

普通bean:class類 是什麼型別就返回什麼型別

工廠bean**:** bean物件需要實現factorybean介面,重寫方法,會自動呼叫getobject返回型別, 可用通過給factorybean<>加泛型的方式,使得返回的型別不用一致;

(1)在spring裡面,預設情況下,bean是單例項物件

(2)如何設定bean是單例項物件還是多例項物件?

2.1:可以用scope屬性設定

2.2:scope屬性(常用):

singleton(預設):單例項物件

prototype:多例項物件

(3)singleton和prototype的區別:

**singleton是單例項物件,**且為載入配置檔案時建立物件;

**prototype 是多例項物件,**當呼叫getbean()方法時才建立物件;

**

1、生命週期

(1)從物件建立到物件銷毀的過程

2、bean 生命週期

(1)通過構造器建立 bean 例項(無引數構造)

(2)為 bean 的屬性設定值和對其他 bean 引用(呼叫 set 方法)

(3)呼叫 bean 的初始化的方法(需要進行配置初始化的方法)

(4)bean 可以使用了(物件獲取到了)

(5)當容器關閉時候,呼叫 bean 的銷毀的方法(需要進行配置銷毀的方法)

3、加上後置處理器之後的

注:處理器的建立bean 的後置處理器,bean 生命週期有七步

建立類,實現介面beanpostprocessor,建立後置處理器

(1)通過構造器建立 bean 例項(無引數構造)

(2)為 bean 的屬性設定值和對其他 bean 引用(呼叫 set 方法)

(3)把 bean 例項傳遞 bean 後置處理器的方法 postprocessbeforeinitialization

(4)呼叫 bean 的初始化的方法(需要進行配置初始化的方法)

(5)把 bean 例項傳遞 bean 後置處理器的方法 postprocessafterinitialization

(6)bean 可以使用了(物件獲取到了)

(7)當容器關閉時候,呼叫 bean 的銷毀的方法(需要進行配置銷毀的方法)

Spring學習 IOC容器 xml

1.xml檔案配置 2.註解 commons logging 1.2 bin spring framework 4.3.0.release dist匯入到專案 建立乙個類,用來完成對spring配置檔案的載入和銷毀 所有的單元測試類都必須繼承自上類,並且都必須加註解 runwith blockjun...

Spring 5 x原理 之IOC容器

ioc又名控制反轉,意思是物件將對在自身物件中的乙個內建物件的控制權反轉給乙個容器,而應用程式只需要提供物件的型別即可。這是一種解耦的設計思想,並不是什麼具體的技術。在沒有ioc設計的場景下,開發人員在使用所需的物件時,需手動建立各種物件。有了ioc這樣的設計思想,在開發中,意味著將設計好的物件交給...

Spring元件和IOC容器

主要完成三個功能,在spring中好比乙個演員的角色 1 bean的建立 由beanfactory完成 2 bean的定義 由beandefinition完成 3 bean的解析 由beandefinitionreader完成 該元件提供了spring的基本執行環境,在spring中好比乙個舞台的角...