春IOC コンテナ ・ビーン 、次のようにのライフサイクルがあります:
。コールコンストラクタ:①Beanインスタンスは、コンストラクタまたはファクトリメソッドによって作成されます②財産及びその他のビーンビーン参照の値を設定するには:コールセッターをpostProcessBeforeInitialization方法③。ビーンビーンインスタンスへのプリプロセッサに渡します④豆は、initializeメソッド:. INIT-メソッドを呼び出します⑤。BeanインスタンスがメソッドpostProcessAfterInitializationビーンポストプロセッサに渡されます⑥。使用する豆の準備ができて⑦コンテナが閉じられると、メソッド呼び出しビーン:.破壊法を破壊。
豆の初期化と破壊方法
:
豆ノードができる
-方法を初期化
し、
破壊法
ビーンの破壊方法を初期化し、構成する方法を:
<ビーンID = "人"クラス= "com.demo.spring.bean.Person"
INIT-方法= "initは"破壊法を= "破壊します"
>
<プロパティ名= "名前" 値= "ジャック"> </ property>の
</豆>
注:
参照のApplicationContext IOCコンテナインターフェース、破壊法わけではない機能としての使用はApplicationContextのサブインターフェイスを使用するために必要なように、方法のApplicationContextインタフェースは、密閉容器ではない
ConfigurableApplicationContextを
。
詳細ビーンポストプロセッサ
:
ポストプロセッサ豆:豆春の特別オファー
。追加の処理豆の前と後:①ビーンポストプロセッサは、呼の初期化処理(豆ノード属性対応のinitメソッドのメソッド後IE)を可能にします。
。②ビーン後処理すべてに対して1つのビーンインスタンスIOCコンテナずつ処理し、むしろ単一インスタンスより一般的な用途は次のとおり特定の基準ビーンに従って正当ビーンプロパティまたは変更を確認
プロパティ。
③。Beanのポストプロセッサ、インターフェースBeanPostProcessorを実装する必要性を
パブリッククラスPersonPostProcessor実装BeanPostProcessor {/ *** ARG0:BeanコンテナのIOCインスタンス* ARG1:Beanの名前でIOCコンテナ* /@オーバーライドパブリックオブジェクトpostProcessAfterInitialization(オブジェクトarg0に、文字列ARG1)はBeansExceptionを{スローIF(人のinstanceof arg0に){System.out.println( "postProcessAfterInitialization");一人一人=(人物)のarg0;文字列名= person.getName()。(もし!name.equals( "AAAA")){System.out.println( "名前の値はBBBBでなければなりません!");person.setName( "BBBB");}}arg0に返します。}@オーバーライドパブリックオブジェクトpostProcessBeforeInitialization(オブジェクトarg0に、文字列ARG1)はBeansExceptionを{スローSystem.out.println( "postProcessBeforeInitialization");arg0に返します。}}
④。ビーンポストプロセッサの必要性は容器IOCで構成するが、豆が自動的にそれを使用する後処理である容器意志スプリングIOCのid属性の自動識別を指定する必要はありません。
<beanクラス= "com.demo.spring.bean.PersonPostProcessor" / >