Spring容器中的元件,及自定義屬性編輯器

2021-10-06 16:36:30 字數 2222 閱讀 4133

二、`beandefinition`

三、`instantiationstrategy`

五、屬性編輯器(型別轉換器)

六、自定義屬性編輯器

resourcebeandefinitionpropertyeditor、及最終的bean

它們是加工流程中被加工、被消費的元件、就像流水線上被加工的物料一樣。

它們就像流水線上不同環節的加工裝置,對物料元件進行加工處理。

(1)resourceloader載入配置資訊,並使用resource表示這個配置檔案資源;

(2)beandefinitionreader讀取resource所指向的配置檔案資源,解析配置檔案,將每個解析成乙個beandefinition物件,並儲存到**beandefinitionregistry**中;

(3)beanfactorypostprocessorbeandefinition進行加工處理,情況一:對使用佔位符的元素標籤進行解析,得到最終的配置值。情況二:獲取propertyeditor,將propertyeditor註冊到spring容器的屬性編輯器登錄檔中;

(4)instantiationstrategy著手進行bean例項化工作;

(6)beanfactorypostprocessorbean進行後續的寄送處理;

beandefinition就像的鏡中人,二者是一一對應。

instantiationstrategy負責根據beandefinition物件建立乙個bean例項。

spring在propertyeditorregistrysyooirt中為常見屬性型別提供了預設的屬性編輯器。

/**

* 自定義屬性編輯器

* * @date 2020/5/31

* @author lifei

*/public

class

customcareditor

extends

propertyeditorsupport

string[

] infos = text.

split

(",");

car car =

newcar()

; car.

setbrand

(infos[0]

);car.

setcolor

(infos[1]

);car.

setmaxspeed

(integer.

parseint

(infos[2]

));// 呼叫父類的setvalue() 方法設定轉換後的屬性物件

setvalue

(car);}

}

class

="org.springframework.beans.factory.config.customeditorconfigurer"

>

name

="customeditors"

>

>

key=

"com.hef.beans.car"

value

="com.hef.editor.customcareditor"

/>

map>

property

>

bean

>

"bosscustom"

class

="com.hef.beans.boss"

p:name

="customboss"

p:car

="自定義,黑色,137"

/>

Spring元件和IOC容器

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

spring元件及架構

spring介紹 開源控制反轉ioc和面向切面aop容器框架 spring元件 1 事務管理服務 2 jms服務 3 spring core核心服務 4 持久化服務 功能點 1 spring管理bean的生命週期 2 spring自動掃瞄管理bean 或xml配置管理 service 業務層 con...

Spring容器對Bean元件的管理

一.bean物件建立時機 預設是隨容器建立,通過lazy init可以改變物件例項化時機 a 預設lazy init default false 當spring容器例項化的時候,並把 容器中物件全部完成例項化 b lazy init true 當從spring容器中獲取物件時候在對物件 例項始化 c...