インターフェース | 説明 |
---|---|
Conversation | アプリケーションが、現在の会話を一時的または長時間実行としてマークするか、会話識別子を指定するか、会話タイムアウトを設定することにより、会話コンテキストを管理できるようにします。 |
クラス | 説明 |
---|---|
ApplicationScoped.Literal | ApplicationScoped アノテーションのインラインインスタンス化をサポートします。 |
BeforeDestroyed.Literal | BeforeDestroyed 修飾子のインラインインスタンス化をサポートします。 |
ConversationScoped.Literal | ConversationScoped アノテーションのインラインインスタンス化をサポートします。 |
Dependent.Literal | Dependent アノテーションのインラインインスタンス化をサポートします。 |
Destroyed.Literal | Destroyed 修飾子のインラインインスタンス化をサポートします。 |
Initialized.Literal | Initialized 修飾子のインラインインスタンス化をサポートします。 |
RequestScoped.Literal | RequestScoped アノテーションのインラインインスタンス化をサポートします。 |
SessionScoped.Literal | SessionScoped アノテーションのインラインインスタンス化をサポートします。 |
例外 | 説明 |
---|---|
BusyConversationException | 同時リクエストが同じ会話コンテキストに関連付けられているため、コンテナーがリクエストを拒否したことを示します。 |
ContextException | コンテキスト管理に関する問題を示します。 |
ContextNotActiveException | コンテキストがアクティブでないことを示します。 |
NonexistentConversationException | 会話コンテキストを復元できなかったことを示します。 |
アノテーション型 | 説明 |
---|---|
ApplicationScoped | Bean がアプリケーションスコープであることを指定します。 |
BeforeDestroyed | この修飾子を持つイベントは、コンテキストが破棄されようとしているとき、つまり |
ConversationScoped | Bean が会話スコープであることを指定します。 |
Dependent | Bean が従属疑似スコープに属することを指定します。 |
Destroyed | この修飾子を持つイベントは、コンテキストが破棄されると発生します。 |
Initialized | この修飾子を持つイベントは、コンテキストが初期化されたとき、つまり |
NormalScope | アノテーション型が通常のスコープ型であることを指定します。 |
RequestScoped | Bean がリクエストスコープであることを指定します。 |
SessionScoped | Bean がセッションスコープであることを指定します。 |
スコープとコンテキストに関連するアノテーションとインターフェース。
スコープ型は、@Scope
または @NormalScope
アノテーションが付けられた Java アノテーションです。Bean のスコープは、インスタンスのライフサイクルと可視性を決定します。特に、スコープは以下を決定します。
次の組み込みスコープが提供されています: @Dependent
、@RequestScoped
、@ConversationScoped
、@SessionScoped
、@ApplicationScoped
、@Singleton
。
コンテナーは、組み込みスコープごとに Context
インターフェースの実装を提供します。組み込みのリクエスト、セッション、アプリケーションコンテキストは、サーブレット、Web サービス、EJB の呼び出しをサポートします。組み込みの会話コンテキストは JSF リクエストをサポートします。
他の種類の呼び出しの場合、ポータブル拡張機能は、組み込みスコープのいずれかまたはすべてのカスタムコンテキストオブジェクトを定義できます。例: サードパーティの Web アプリケーションフレームワークは、組み込みの会話スコープの会話コンテキストオブジェクトを提供する場合があります。
組み込みスコープに関連付けられたコンテキストは、EJB ローカルビジネスメソッドの呼び出しを含む、ローカルの同期 Java メソッド呼び出し全体に伝播します。コンテキストは、リモートメソッドの呼び出し間、または JMS メッセージリスナーや EJB タイマーサービスのタイムアウトなどの非同期プロセスには伝播しません。
ほとんどのスコープは通常のスコープです。通常のスコープは @NormalScope
を使用して宣言されます。Bean に通常のスコープがある場合、特定のスレッドで実行されるすべてのクライアントは、Bean の同じコンテキストインスタンスを参照します。このインスタンスは、Bean の現在のインスタンスと呼ばれます。通常のスコープ型のコンテキストオブジェクトの操作 Context.get(Contextual)
は、常に指定された Bean の現在のインスタンスを返します。
通常のスコープではないスコープは、疑似スコープと呼ばれます。疑似スコープは @Scope
を使用して宣言されます。疑似スコープの場合、現在のインスタンスの概念は明確に定義されていません。同じスレッドで実行されている異なるクライアントは、Bean の異なるインスタンスを参照する場合があります。@Dependent
疑似スコープの極端なケースでは、すべてのクライアントが Bean の独自のプライベートインスタンスを持っています。
@Dependent
および @Singleton
疑似スコープを除いて、すべての組み込みスコープは通常のスコープです。
プログラムによるルックアップを介してコンテナーから取得された Bean への参照は、コンテキスト参照と呼ばれます。通常のスコープを持つ Bean のコンテキスト参照は、Bean の現在のインスタンスを参照します。Bean のコンテキスト参照は、特定の期間のみ有効です。アプリケーションは、無効な参照のメソッドを呼び出さないでください。
Bean のコンテキスト参照の有効性は、Bean のスコープが通常のスコープか疑似スコープかによって異なります。
ContextNotActiveException
がコンテナーによってスローされます。依存性注入を介してコンテナーから取得された Bean への参照は、注入された参照と呼ばれる特別な種類のコンテキスト参照です。挿入された参照の有効性には、追加の制限が適用されます。
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.