Spring容器のコンポーネント、およびカスタムプロパティエディタ
9315 ワード
Spring容器のコンポーネント、およびカスタムプロパティエディタ
記事の目次Spring容器のコンポーネント、およびカスタム属性エディタ 一、スプリング容器の中のコンポーネントと配合機構 1.1部品 1.2デバイス 1.3配合機構 二、`BeanDefinition` 三、`InstantiationStrategy` 四、`BenWrapper` 5、プロパティエディタ(タイプ変換器) 六、カスタム属性エディタ 6.1カスタムプロパティエディタ 6.2 登録プロパティエディタ 6.3カスタム属性エディタ 一、Spring容器の中のコンポーネントと配合メカニズム
1.1マテリアルコンポーネント
これらは加工プロセスにおいて加工され、消費される部品であり、流水ラインに加工されたもののようです.
1.2デバイスコンポーネント
これらは流水ラインの異なる環節の加工設備のように、材料部品を加工処理します.
1.3配合機構
(1)
(2)
(3)
(4)
(5)
(6)
二、
三、
四、
五、プロパティエディタ(タイプ変換器)
Springは
六、カスタム属性エディタ
6.1カスタム属性エディタ
記事の目次
1.1マテリアルコンポーネント
Resource
、BeanDefinition
、PropertyEditor
、および最終的Bean
.これらは加工プロセスにおいて加工され、消費される部品であり、流水ラインに加工されたもののようです.
1.2デバイスコンポーネント
ResourceLoader
、BeanDefinitionReader
、BeanFactoryPostProcessor
、InstantiationStrategy
、BeanWrapper
.これらは流水ラインの異なる環節の加工設備のように、材料部品を加工処理します.
1.3配合機構
(1)
ResourceLoader
配置情報をロードし、使用Resource
この配置ファイルリソースを示す.(2)
BeanDefinitionReader
指示されたプロファイルリソースを読み出しResource
配置ファイルを解析し、各
一つのBeanDefinition
オブジェクトに解析して、**BeanDefinitionRegistry
*に保存する.(3)
BeanFactoryPostProcessor
対BeanDefinition
加工処理を行う場合の一:プレースホルダを使用した
要素ラベルを解析し、最終的な配置値を得る.ケース2:取得PropertyEditor
、Spring容器に登録されているプロパティエディタのレジストリにPropertyEditor
登録する.(4)
InstantiationStrategy
着手Bean
実用化作業;(5)
BeanWrapper
対Bean
の属性を設定する.(6)
BeanFactoryPostProcessor
対Bean
後続の発送処理を行う.二、
BeanDefinition
BeanDefinition
似ている
の鏡の中の人は、それぞれ対応しています.三、
InstantiationStrategy
InstantiationStrategy
従順BeanDefinition
オブジェクト作成の担当Bean
例.四、
BeanWrapper
Spring依頼BeanWrapper
ビーン属性の充填作業を完了する.五、プロパティエディタ(タイプ変換器)
Springは
PropertyEditorRegistrySyooirt
において、一般的な属性タイプにデフォルトの属性エディタを提供しています.六、カスタム属性エディタ
6.1カスタム属性エディタ
/**
*
*
* @Date 2020/5/31
* @Author lifei
*/
public class CustomCarEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
if (text==null || text.indexOf(",")==-1){
throw new IllegalArgumentException(" ");
}
String[] infos = text.split(",");
Car car = new Car();
car.setBrand(infos[0]);
car.setColor(infos[1]);
car.setMaxSpeed(Integer.parseInt(infos[2]));
// setValue()
setValue(car);
}
}
6.2 プロパティエディタを登録
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="com.hef.beans.Car" value="com.hef.editor.CustomCarEditor"/>
map>
property>
bean>
6.3カスタム属性エディタを使用する
<bean id="bossCustom" class="com.hef.beans.Boss" p:name="customBoss" p:car=" , ,137"/>