5つのスコープでの春の豆?春は豆スレッドセーフまだ?春の豆5つのスコープ内にあります

5つのスコープ内のSpring Bean

あなたは春のコンテナによってBeanインスタンスのできるだけでなく、完全な例をBeanインスタンスを作成すると、豆はまた、特定の範囲を指定することができます。春はスコープの以下の5種類をサポートしています。

  • シングルトン:シングルトン、全体春のIoCコンテナ、シングルトンビーン定義を使用して唯一のインスタンス

  • プロトタイプ:プロトタイプモード、ビーンはプロトタイプのメソッドgetBeanコンテナで定義されたすべての買収は、豆の新しいインスタンスを生成します

  • 要求:要求Beanを使用して、各HTTPリクエストの場合、新しいインスタンスを定義しているであろう、すなわち異なるBeanインスタンスを生成する各HTTP要求。春のWebアプリケーションでのみを使用し、この範囲は有効です

  • セッションは:セッションビーンミルクを使用して定義された各HTTPセッションの場合は、新しいインスタンスを作成します。同様に、このスコープが有効である、唯一のWebアプリケーションで春を使用

  • globalsession:各グローバルHTTPセッションは、Beanの新しいインスタンスを生成しますセッションを使用して定義されました。ポートレットコンテキストを使用する場合、通常、唯一の効果的。同様に、このスコープが有効である、唯一のWebアプリケーションで春を使用

  より一般的にシングルトンとプロトタイプスコープの2種類を使用します。豆、豆のシングルトン範囲について各要求は、同じインスタンスを受け取ります。ビーンコンテナは状態インスタンスを追跡するための責任があり、Beanインスタンスは、行動のライフサイクルを維持する責任がある。プロトタイプは豆の範囲に設定されている場合、各プログラムのIDは豆、春は新しいBeanインスタンスを作成し、プログラムに戻ります要求します。作成したら、この場合には、春のコンテナはちょうど、新しいキーワードBeanインスタンスを使用して作成し、コンテナは、インスタンスを追跡していない状態Beanインスタンスを維持しません。

  あなたは、デフォルトでスコープシングルトン春の使用をビーンのスコープを指定しない場合。JavaのJavaインスタンス、メモリ割り当ての必要性作成する場合は、インスタンスが破棄されたときに、ガベージコレクションが行われる必要があるが、これらの努力は、オーバーヘッドの増加につながります。したがって、破壊コストのプロトタイプ作成ビーン範囲は比較的大きいです。作成したらスコープシングルトンBeanインスタンスは、再利用することができます。そのため、豆を避けるために必要でない限りは、プロトタイプの範囲に設定されます。

 

参考リンク:5つのスコープで春の豆

 

春は豆スレッドセーフでありますか?

豆スレッドセーフ管理春のレースの条件を持つBeanとBeanは環境が存在に関連するスコープを作成する場合は、春には、スレッドセーフBeanを保証するものではありません。

 

参考リンク:豆スレッドセーフの春?

おすすめ

転載: www.cnblogs.com/jxxblogs/p/12147414.html