Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

11.2.4.2. Bean であるクラスのタイプ

管理対象 bean は Java クラスです。管理対象 bean の基本的なライフサイクルやセマンティクスは、管理対象 Bean の仕様で定義されています。bean クラス @ManagedBean アノテーションを付けることで明示的に管理対象 bean を宣言できますが、CDI ではその必要はありません。この仕様によると、CDI コンテナーでは、以下の条件を満たすクラスはすべて管理対象 bean として扱われます。
  • 非静的な内部クラスではないこと。
  • これは具象クラスであるか、@Decorator アノテーションが付けられています。
  • EJB コンポーネントを定義するアノテーションが付与されていないこと、あるいは ejb-jar.xml で EJB bean クラスとして宣言されていること。
  • インターフェイスを実装していません javax.enterprise.inject.spi.Extension.
  • パラメーターのないコンストラクターか、@Inject アノテーションが付与されたコンストラクターがあること。
管理対象 bean の無制限の bean 型には、直接的あるいは間接的に実装する bean クラス、スーパークラスすべて、およびインターフェースすべてが含まれます。
管理対象 Bean にパブリックフィールドがある場合は、デフォルトの @Dependent スコープが必要です。