アノテーション型 ApplicationScoped


  • @TargetSE({TYPESE,METHODSE,FIELDSE})
    @RetentionSE(RUNTIMESE)
    @DocumentedSE
    @NormalScope
    @InheritedSE
    public @interface ApplicationScoped

    Bean がアプリケーションスコープであることを指定します。

    ApplicationScoped は、仕様で要求される組み込みアプリケーションコンテキストに関連付ける必要がありますが、サードパーティの拡張機能は、ApplicationScoped を独自のコンテキストに関連付けることもできます。以下で説明する動作は、組み込みのアプリケーションコンテキストにのみ関連しています。

    アプリケーションスコープがアクティブです:

    • Web アプリケーション内のサーブレットの service() メソッド中、サーブレットフィルターの doFilter() メソッド中、コンテナーが ServletContextListenerHttpSessionListenerAsyncListener または ServletRequestListener を呼び出すとき。
    • Java EE Web サービスの呼び出し
    • リモートメソッドによる EJB の呼び出し中、非同期メソッドによる EJB の呼び出し中、EJB タイムアウトメソッドの呼び出し中、EJB メッセージ駆動型 Bean へのメッセージ配信中。
    • @ApplicationScoped 以外の通常のスコープを持つ Bean のディスポーザーメソッドまたは @PreDestroy コールバックが呼び出されたとき
    • Bean の @PostConstruct コールバック中。

    アプリケーションコンテキストは、すべてのサーブレットリクエスト、Web サービス呼び出し、EJB リモートメソッド呼び出し、EJB 非同期メソッド呼び出し、EJB タイムアウト、同じアプリケーション内で実行されるメッセージ駆動型 Bean へのメッセージ配信の間で共有されます。

    アプリケーションがシャットダウンされると、アプリケーションコンテキストは破棄されます。

    修飾子 @Initialized(ApplicationScoped.class) のイベントは、アプリケーションコンテキストが初期化されたときに発生し、修飾子 @Destroyed(ApplicationScoped.class) のイベントは、アプリケーションコンテキストが破棄されたときに発生します。イベントペイロードは次のとおりです。

    • アプリケーションがサーブレットコンテナーにデプロイされた Web アプリケーションである場合は ServletContext、または
    • 他のタイプのアプリケーション用の任意の java.lang.Object
    作成者:
    Gavin King, Pete Muir, Antoine Sabot-Durand