jakarta.enterprise.context.ApplicationScoped
の jakarta.enterprise.context.Initialized
イベントを監視することによって具体的に置き換えられることに注意してください。詳細については、CDI 仕様の 6.7.3 を参照してください。@RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE=TYPESE) @InheritedSE @DeprecatedSE public @interface ManagedBean
クラスにこのアノテーションが存在すると、そのクラスはマネージド Bean クラスとしてランタイムに自動的に登録されます。リクエストが処理される前に、アプリケーションの起動時にクラスがこのアノテーションの存在をスキャンする必要があります。
name()
属性の値は、managed-bean-name と見なされます。name 属性の値が指定されていない場合、または空の String
である場合、managed-bean-name は、完全修飾クラス名の非修飾クラス名の部分を取得し、最初の文字を小文字に変換したものから派生します。例: ManagedBean
アノテーションが完全修飾クラス名 com.foo.Bean
のクラスにあり、アノテーションに名前属性がない場合、managed-bean-name は bean
と見なされます。このアノテーションが添付されているクラスの完全修飾クラス名は、managed-bean-class と見なされます。
管理対象の Bean のスコープは、NoneScoped
、RequestScoped
、ViewScoped
、SessionScoped
、ApplicationScoped
、CustomScoped
アノテーションのいずれかを使用して宣言されます。スコープアノテーションが省略されている場合、Bean は、RequestScoped
アノテーションが存在するかのように処理する必要があります。
eager()
属性の値が true
で、managed-bean-scope
値が「アプリケーション」の場合、ランタイムはアプリケーションの起動時にこのクラスをインスタンス化する必要があります。このインスタンス化とインスタンスの保存は、リクエストが処理される前に行う必要があります。eager が指定されていないか false
、または managed-bean-scope
が「アプリケーション」以外の場合、管理対象の Bean のデフォルトの「遅延」インスタンス化とスコープ付きストレージが発生します。
ランタイムがこのアノテーションを処理するときに、派生した managed-bean-name と同じ名前の管理対象 Bean が存在する場合は、FacesException
をスローし、アプリケーションをサービス状態にしないでください。
このアノテーションでタグ付けされたクラスには、引数なしの public コンストラクターが必要です。そのようなコンストラクターがクラスで定義されていない場合は、FacesException
をスローし、アプリケーションを稼働させないでください。
public abstract StringSE name
managed-bean-name
と見なされます。詳細については、クラスのドキュメントを参照してください。
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.