7.5. コンテキストおよびスコープ

Contexts and Dependency Injection というコンテキストは、特定のスコープに関連付けられた Bean のインスタンスを保持するストレージエリアです。

スコープは bean とコンテキスト間のリンクです。スコープとコンテキストの組み合わせは特定のライフサイクルを持つことができます。事前定義された複数のスコープが存在し、独自のスコープを作成できます。事前定義されたスコープの例は @RequestScoped@SessionScoped、および @ConversationScope です。

表7.1 利用可能なスコープ

範囲説明

@Dependent

Bean は、参照を保持する Bean のライフサイクルにバインドされます。インジェクション Bean のデフォルトのスコープは @Dependent です。

@ApplicationScoped

Bean はアプリケーションのライフサイクルにバインドされます。

@RequestScoped

Bean はリクエストのライフサイクルにバインドされます。

@SessionScoped

Bean はセッションのライフサイクルにバインドされます。

@ConversationScoped

Bean は会話のライフサイクルにバインドされます。会話スコープは、リクエストの長さとセッションの間であり、アプリケーションによって制御されます。

カスタムスコープ

上記のコンテキストで対応できない場合は、カスタムスコープを定義できます。