5.4. ライフサイクルのメソッド
セッション Bean とエンティティ Bean の Seam コンポーネントは通常の EJB3 ライフサイクルの全コールバック (
@PostConstruct、 @PreDestroy など) をサポートしていますが、 Seam は JavaBean コンポーネントでのこれらコールバックの使用もサポートします。 ただし、 これらのアノテーションは J2EE 環境では有効とならないため Seam は @PostConstruct と @PreDestroy と等価な 2 つの追加コンポーネントライフサイクルのコールバックを定義します。
@Create メソッドは Seam がコンポーネントをインスタンス化した後に呼び出されます。 コンポーネントが定義できるのは 1 つの @Createメソッドのみになります。
@Destroy メソッドは Seam コンポーネントがバインドするコンテキストが終了すると呼び出されます。 コンポーネントが定義できるのは 1 つの @Destroy メソッドのみです。
また、 ステートフルセッション Bean コンポーネントは
@Remove アノテーションが付いたパラメータのないメソッドをひとつ定義 しなければなりません。 このメソッドはコンテキストが終了すると Seam により呼び出されます。
最後に、
@Startup アノテーションはいずれのアプリケーションまたはセッションスコープのコンポーネントにも適用することができます。 @Startup アノテーションは、 クライアントによって参照されるのを待たずにコンテキストが開始したら直ちに Seam にコンポーネントをインスタンス化するよう指示します。 @Startup(depends={....}) を指定するとスタートアップコンポーネントをインスタンス化する順序を制御することができます。