Spring @Scope 落とし穴
@Scope("xxxxxxx")
スコープに設定可能な値
スコープ値 | 概要 |
singleton | Spring起動時にインスタンスを1つだけ生成。 以降は、生成されたインタンスを共有して使う。 スコープの値を設定しなかった場合は、singletonが デフォルト設定となるために気をつける必要がある |
prototype | Beanを取得する度に、毎回インスタンスが生成される。 |
session | HTTPセッション単位でインスタンスが生成される。 ※WEBアプリケーションの場合にのみ使用できる。 |
request | HTTPレクエスト単位でインスタンスが生成される。 ※WEBアプリケーションの場合にのみ使用できる。 |
globalSession | ポートレット環境におけるGrobalSession単位でインスタンスが生成される。 ポートレットに対応したWEBアプリケーションの場合にのみ使用できる。 |
application | サーブレットのコンテキスト単位でインスタンスが生成される。 ※WEBアプリケーションの場合にのみ使用できる。 |
singletonのスコープのクラス内で、prototypeのスクープを設定したクラスがあった場合は、singletonのクラスに引きづられて、singletonのスコープになってします。
スコープの異なるBeanをフィールドに持つ場合に注意が必要。