「Spring MVC」@Scopeアノテーションの使い方

環境
Spring 5.3.8

スコープについて説明
1.singleton(デフォルト)
DIコンテナでインスタンスを一つ生成します。
スコープアノテーションの引数を省略すればデフォルトはsingletonスコープです。

2.prototype
アクセス時に毎回インスタンス生成します。
スレッドセーフでない場合に子のスコープを使用します。

3.request
HTTP Request単位でインスタンスを生成します。

requestスコープを使用する場合は、HTTPリクエストからレスポンスが返るまでの間だけインスタンス生成し、そのあとは破棄したい場合にrequestスコープを使用します。

4.session
HTTP Session単位でインスタンスを生成します。

5.application
サーブレットコンテキスト単位でインスタンス生成します。

使用例1
requestスコープを使用します。

@Controller
@Scope("request")
public class UserAction extends BaseAction<UserForm> {
  処理コード
}

使用例2
sessionスコープを使用します。

@Controller
@Scope("session")
public class MemberAction extends BaseAction<MemberForm> {
  処理コード
 }

 

SpringMVC

Posted by arkgame