JavaEE7のスコープ(CDI)についてメモ

java Java
アノテーション スコープ パッケージ 備考
@Dependent 注入先のBeanのスコープに従う javax.enterprise.context デフォルト設定
@RequestScoped ユーザとWebアプリケーションの単一のHTTPリクエスト間 javax.enterprise.context
@SessionScoped ユーザのWebアプリケーションの複数のHTTPリクエスト(セッションが有効な)間 javax.enterprise.context
@ApplicationScoped アプリケーションの開始から終了までの間 javax.enterprise.context
@ConversationScoped リクエスト以上セッション以下の範囲で、開始・終了をアプリケーションで明示する javax.enterprise.context
@ViewScoped 1つのViewが表示されている間 javax.faces.view JSF専用
@FlowScoped 複数Viewの中で範囲を明示する javax.faces.flow JSF専用

注意点

CDIと同名のアノテーションがJSFのにも存在しているので、注意が必要。
私も実装する際、混同しそうになったので参考までに記載しておきます。

  • javax.faces.bean.RequestScoped
  • javax.faces.bean.SessionScoped
  • javax.faces.bean.ApplicationScoped
  • javax.faces.bean.ViewScoped