2016-09-08 5 views
2

私は春を学んでいます。私はBeanスコープについて学びました。それぞれの実世界のユースケースは何か、私は助けを得ることができません。 SpringでSingleton、Prototype、Request、Sessionのスコープを使用するときは助けてください。実世界のBeanスコープのケース

+1

このリンクはお役に立ちます:http://stackoverflow.com/questions/17599216/spring-bean-scopes –

答えて

1
  • シングルトン:それは春のIoC container.This単一インスタンスごとに単一のBeanインスタンスは、このようなシングルトン豆のキャッシュに保存されて戻って、その名前のBeanのすべての後続の要求や参照がキャッシュされたオブジェクトを返します。構成ファイルにBeanスコープが指定されていない場合、シングルトンはデフォルトです。 実世界の例:データベースへの接続

  • プロトタイプ:これは、新しいBeanインスタンスにそれが要求されるたびに返されます。シングルトンのようなキャッシュバージョンは保存しません。 実世界の例:宣言構成されたフォーム要素とリクエストが

  • 作成されているすべてのフォームのためにそれらのインスタンスを「リビング」を取得(名前、例えば電子メールアドレスを検証するように設定テキストボックス):それを返しますHTTP要求ごとに単一のBeanインスタンス。 現実世界の例:検索結果や注文の確認のように、1ページでのみ有効な情報。このBeanは、ページが再ロードされるまで有効です。

  • セッション:HTTPセッション(ユーザーレベルのセッション)ごとに1つのBeanインスタンスを返します。 現実世界の例:(タイムアウトまたはログアウトによって)セッションが閉じられるときに認証情報が無効になるのを保留する。リクエストごとに再ロードしたくない他のユーザー情報も保存できます。

  • GlobalSession:グローバルHTTPセッションごとに1つのBeanインスタンスを返します。 Web対応のSpring ApplicationContext(アプリケーションレベルセッション)のコンテキストでのみ有効です。これはセッションスコープと似ていて、実際にはポートレットベースのWebアプリケーションのコンテキストでのみ意味があります。ポートレット仕様では、単一のポートレットWebアプリケーションを構成するさまざまなポートレット間で共有されるグローバル・セッションの概念が定義されています。グローバル・セッション・スコープで定義されたBeanは、グローバル・ポートレット・セッションの存続期間にバインドされます。