Spring4豆ライフサイクルスプリングperceptualizationのBeanFactoryAware -Bean -5- BeanNameAwareインターフェイスとインターフェイス

春を意識ビーン

現在まで、豆への暴露は、彼らが特定の機能を完了することができますが、単に工場(たBeanFactory)中で知らないけれども、ちょうど工場内マトリックスマシンの人間の「文化」のように、「無意味」であります睡眠中のコード(ID)、又はそれは植物である(たBeanFactoryを参照)。したがって、このセクションの目的は、異なるビーンを作成し、彼は工場での彼のidを知っていて、元の工場を置くどのようにすることです。


、BeanNameAwareは、名前のビーンが意識してみましょう

役割:豆は(状況IDまたは名前で)たBeanFactory設定で彼の名前を取得してみましょう。

追加の説明:春が自動的に呼び出されます。そして、春の豆の構成自体が完了した後、あなたは、このメソッドを呼び出す前に、豆のライフサイクルコールバック(初期化または破壊)メソッドを呼び出します。言い換えれば、プログラムにBeanFactory.getBean(文字列のbeanName)を使用する前に、ビーン名が既に設定されました。だから、プログラムそれを恐れることなく使用Bean名を楽しむことができますが初期化されていません。

ビーンは、値のBean名を保持する文字列型の変数を持っている必要があります間もちろん、これはプログラマーの準備で手によって行われたときにビーンのコードではなく、空腹によって、特別な設定。

通常、より良い空腹のログを設定するために、その後任意のビジネス上の意味を追加、または特性春までに関連した独自のクラスを作り、それがもたらすだけでログイン豆のように入れないように注意してください。利点はごくわずかです。あなたが名前を持つ内部ビーンのいくつかの種類を必要がある場合は、それは方法のビーン独自の実装をできるように最善である、例えば、のsetName()、その後、各Beanの名前を注入するので、豆の設定の名前を維持するためのスキルはまだ単純なことができDIを使用し、あなたはまた、ビジネス上の意味を持つBeanの名前ように、その設定ファイルを変更する必要があります。


二、BeanFactoryAwareは豆の工場の衆生をしましょう

役割:ビーンたBeanFactoryは彼らの参照を設定しましょう。

インプリメンテーション:BeanFactoryAwareインターフェース、すなわちだけメソッドsetFactory(たBeanFactory工場)として。BeanNameAwareの使用とインターフェースは違いはありませんが、工場のBeanFactoryAware注入、BeanNameAware注入は、Beanの名前です。

追加注:オリジナルの本はsetFactory()メソッドが呼び出されます、しかし、あなたが推測することができます言及しなかったが、この方法はおそらくプロファイルに従って新工場を作成した後、春にはこの方法だけ、とたBeanFactoryを呼び出しますビーンに注入。

豆が自分の工場を設定させ得た後、もちろん、工場のビーンgetBean()メソッドで使用することができる、しかし、実際には、結果はさらに結合豆とスプリングを増加させることであるので、推奨、および、DIを介して非常にありませんDIを介して注入注入に来てみてください。
もちろん、Beanを見つけるに加えて、たBeanFactoryは、このようなビーンシングルトンパターンの破壊などの他の機能の多くを提供することができます。

補足:
factory.preInstantiateSingletons()メソッド。preInstantiateSingletons()メソッドは、すぐには簡単な説明であるとスプリング豆方法および機構をロードする必要がある、すべてのBeanインスタンスをインスタンス化します。

この方法自体の目的は、すべての治療直後に植物春の豆と豆のこれらのインスタンスのすべてを定義することです。ないgetBean()メソッド(たBeanFactoryやApplicationContextの方法)を介して豆を取得した場合、Beanの場合春の既定のインスタンスなので、怠惰なメカニズムを使用して、他の言葉で、その後、メモリを節約するためにビーンそれのインスタンスではありません、唯一のBeanがありますそれらの例にそれを呼び出すとき。

第三に、作用持続時間

集合メソッド後たBeanFactory Bean名埋め込むため、豆ライフサイクルを行いました。

 

おすすめ

転載: blog.csdn.net/lidongliangzhicai/article/details/91447383