8.2.6. Bean ライフサイクル
8.2.6.1. Bean のライフスタイルの管理
タスクの概要
このタスクは、要求の残存期間の間 Bean を保存する方法を示しています。他の複数のスコープが存在し、独自のスコープを定義できます。
挿入された Bean のデフォルトのスコープは
@Dependent
です。つまり、Bean のライフスタイルは、参照を保持する Bean のライフスタイルに依存します。詳細については、「コンテキストおよびスコープ」 を参照してください。
必要なスコープに対応するスコープで Bean をアノテートします。
@RequestScoped @Named("greeter") public class GreeterBean { private Welcome welcome; private String city; // getter & setter not shown @Inject void init(Welcome welcome) { this.welcome = welcome; } public void welcomeVisitors() { System.out.println(welcome.buildPhrase(city)); } }
Bean が JSF ビューで使用される場合、Bean はステートを保持します。
<h:form> <h:inputText value="#{greeter.city}"/> <h:commandButton value="Welcome visitors" action="#{greeter.welcomeVisitors}"/> </h:form>
結果:
Bean は、指定するスコープに関連するコンテキストに保存され、スコープが適用される限り存続します。