9.2.6. Bean ライフサイクル
9.2.6.1. Bean のライフサイクルの管理
概要
このタスクは、要求の残存期間の間 Bean を保存する方法を示しています。他の複数のスコープが存在し、独自のスコープを定義できます。
挿入された Bean のデフォルトのスコープは
@Dependent
です。つまり、Bean のライフサイクルは、参照を保持する Bean のライフサイクルに依存します。詳細については、「コンテキストおよびスコープ」 を参照してください。
手順9.4 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 は、指定するスコープに関連するコンテキストに保存され、スコープが適用される限り存続します。