二、`beandefinition`
三、`instantiationstrategy`
五、屬性編輯器(型別轉換器)
六、自定義屬性編輯器
resource
、beandefinition
、propertyeditor
、及最終的bean
。
它們是加工流程中被加工、被消費的元件、就像流水線上被加工的物料一樣。
它們就像流水線上不同環節的加工裝置,對物料元件進行加工處理。
(1)resourceloader
載入配置資訊,並使用resource
表示這個配置檔案資源;
(2)beandefinitionreader
讀取resource
所指向的配置檔案資源,解析配置檔案,將每個解析成乙個
beandefinition
物件,並儲存到**beandefinitionregistry
**中;
(3)beanfactorypostprocessor
對beandefinition
進行加工處理,情況一:對使用佔位符的元素標籤進行解析,得到最終的配置值。情況二:獲取
propertyeditor
,將propertyeditor
註冊到spring容器的屬性編輯器登錄檔中;
(4)instantiationstrategy
著手進行bean
例項化工作;
(6)beanfactorypostprocessor
對bean
進行後續的寄送處理;
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...