インターフェース BeanManager
- すべてのスーパーインターフェース:
BeanContainer
- すべての既知のサブインターフェース:
ELAwareBeanManager
ポータブル拡張機能がコンテナーと直接やり取りできるようにします。Bean のコンテキスト参照を取得するための操作と、ポータブル拡張機能を使用するための他の多くの操作を提供します。
CDI Lite 環境では、アプリケーションは BeanManager を取得できますが、BeanContainer から継承されていないメソッドを呼び出すと、移植性のない動作が発生します。
Bean は、次のように挿入することで BeanManager のインスタンスを取得できます。
@Inject BeanManager manager;
Java EE コンポーネントは、java:comp/BeanManager という名前を検索することにより、JNDISE から BeanManager のインスタンスを取得できます。
BeanManager のほとんどの操作は、アプリケーションの実行中にいつでも呼び出すことができます。
ただし、AfterBeanDiscovery イベントが発生する前に、次の操作を呼び出さないでください。
BeanContainer.getBeans(String),BeanContainer.getBeans(java.lang.reflect.Type, java.lang.annotation.Annotation...),getPassivationCapableBean(String),BeanContainer.resolve(java.util.Set),resolveDecorators(java.util.Set, java.lang.annotation.Annotation...),BeanContainer.resolveInterceptors(InterceptionType, java.lang.annotation.Annotation...),BeanContainer.resolveObserverMethods(Object, java.lang.annotation.Annotation...),validate(InjectionPoint),
AfterDeploymentValidation イベントが発生する前に、次の操作を呼び出さないでください。
BeanContainer.createInstance()BeanContainer.getReference(Bean, java.lang.reflect.Type, CreationalContext),getInjectableReference(InjectionPoint, CreationalContext),
コンテナーが例外をスローします。
- 作成者:
- Gavin King, Pete Muir, Clint Popetz, David Allen, Antoine Sabot-Durand
メソッドのサマリー
修飾子と型メソッド説明booleanareInterceptorBindingsEquivalent(AnnotationSE interceptorBinding1, AnnotationSE interceptorBinding2) Nonbindingでアノテーションが付けられたメンバーを考慮して、2 つのインターセプターバインディングが型安全な解決の目的で同等と見なされるかどうかを判断します。booleanareQualifiersEquivalent(AnnotationSE qualifier1, AnnotationSE qualifier2) Nonbindingでアノテーションが付けられたメンバーを考慮して、2 つの修飾子が型安全な解決の目的で同等と見なされるかどうかを判断します。<T> AnnotatedType<T>createAnnotatedType(ClassSE<T> type) 指定されたクラスまたはインターフェースのアノテーションを読み取るために使用できるAnnotatedTypeを取得します。<T> Bean<T>createBean(BeanAttributes<T> attributes, ClassSE<T> beanClass, InjectionTargetFactory<T> injectionTargetFactory) <T,X> Bean<T> createBean(BeanAttributes<T> attributes, ClassSE<X> beanClass, ProducerFactory<X> producerFactory) createBeanAttributes(AnnotatedMember<?> type) 指定されたAnnotatedTypeのBeanAttributesを取得します。<T> BeanAttributes<T>createBeanAttributes(AnnotatedType<T> type) 指定されたAnnotatedTypeのBeanAttributesを取得します。createInjectionPoint(AnnotatedField<?> field) 指定されたAnnotatedFieldのInjectionPointのコンテナー提供の実装を取得します。createInjectionPoint(AnnotatedParameter<?> parameter) 指定されたAnnotatedParameterのInjectionPointのコンテナー提供の実装を取得します。<T> InterceptionFactory<T>createInterceptionFactory(CreationalContext<T> ctx, ClassSE<T> clazz) 指定されたCreationalContextと型のInterceptionFactoryを作成します。非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。<T extends Extension>
TgetExtension(ClassSE<T> extensionClass) META-INF/servicesで宣言された Extension クラスのコンテナーのインスタンスを取得します。getInjectableReference(InjectionPoint ij, CreationalContext<?> ctx) 特定のインジェクションポイントの注入可能な参照を取得します。<T> InjectionTargetFactory<T>getInjectionTargetFactory(AnnotatedType<T> annotatedType) コンテナーが作成したInjectionTargetインスタンスを提供するInjectionTargetFactoryの実装。getInterceptorBindingDefinition(ClassSE<? extends AnnotationSE> bindingType) 特定のインターセプターバインディング型のメタアノテーションのセットを取得します。intgetInterceptorBindingHashCode(AnnotationSE interceptorBinding) JDK アルゴリズムを使用してアノテーションハッシュコードを決定し、Nonbindingでアノテーションされたメンバーを無視して、インターセプターバインディングのハッシュコードを決定します。Bean<?>指定された識別子を持つPassivationCapableBean を返します。<X> ProducerFactory<X>getProducerFactory(AnnotatedField<? super X> field, Bean<X> declaringBean) 指定されたフィールドに対してコンテナーが作成したProducerインスタンスを提供するProducerFactoryの実装。<X> ProducerFactory<X>getProducerFactory(AnnotatedMethod<? super X> method, Bean<X> declaringBean) 指定されたメソッドに対してコンテナーが作成したProducerインスタンスを提供するProducerFactoryの実装。intgetQualifierHashCode(AnnotationSE qualifier) アノテーションハッシュコードを決定するための JDK アルゴリズムを使用して、Nonbindingでアノテーションされたメンバーを無視して、修飾子のハッシュコードを決定します。getStereotypeDefinition(ClassSE<? extends AnnotationSE> stereotype) 特定のステレオタイプのメタアノテーションを取得します。booleanisPassivatingScope(ClassSE<? extends AnnotationSE> annotationType) 指定されたアノテーション型をテストして、それが非活性化スコープ型であるかどうかを判断します。resolveDecorators(SetSE<TypeSE> types, AnnotationSE... qualifiers) BeanManagerが注入されたクラス、またはBeanManagerが取得された JNDI 環境名前空間の Java EE コンポーネントを含むモジュールまたはライブラリで有効になっている、Bean 型のセットと修飾子のセットのデコレータの順序付きリストを返します。voidvalidate(InjectionPoint injectionPoint) 特定のインジェクションポイントを検証します。wrapExpressionFactory(ExpressionFactory expressionFactory) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。ELAwareBeanManagerを使用します。このメソッドは CDI 5.0 で削除されますインターフェース jakarta.enterprise.inject.spi.BeanContainer から継承されたメソッド
createCreationalContext, createInstance, getBeans, getBeans, getContext, getContexts, getEvent, getReference, isInterceptorBinding, isMatchingBean, isMatchingEvent, isNormalScope, isQualifier, isScope, isStereotype, resolve, resolveInterceptors, resolveObserverMethods
メソッドの詳細
getInjectableReference
特定のインジェクションポイントの注入可能な参照を取得します。
- パラメーター:
ij- ゴール噴射点ctx- 作成されたスコープDependentのオブジェクトを破棄するために使用できるCreationalContext- 戻り値:
- 注入可能な参照
- 例外:
UnsatisfiedResolutionException- 型安全な解決の結果、依存関係が満たされない場合AmbiguousResolutionException- 型安全な解決により、解決できないあいまいな依存関係が発生するIllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterDeploymentValidationイベントが発生する前。
getPassivationCapableBean
指定された識別子を持つPassivationCapableBean を返します。AfterBeanDiscoveryイベントオブザーバーの呼び出し中に呼び出された場合、このメソッドは、AfterBeanDiscoveryイベントが発生する前にコンテナーによって検出された Bean のみを返すことに注意してください。- パラメーター:
id- 識別子- 戻り値:
PassivationCapableを実装し、指定された識別子を持つBean、そのような Bean がない場合は null 値- 例外:
IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterBeanDiscoveryイベントが発生する前。
validate
特定のインジェクションポイントを検証します。AfterBeanDiscoveryイベントオブザーバーの呼び出し中に呼び出された場合、このメソッドは、AfterBeanDiscoveryイベントが発生する前にコンテナーによって検出されたインジェクションポイントのみを検証することに注意してください。- パラメーター:
injectionPoint- 検証するインジェクションポイント- 例外:
InjectionException- インジェクションポイントに関連付けられているデプロイ問題(たとえば、満たされていない、解決できないあいまいな依存関係)がある場合IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterBeanDiscoveryイベントが発生する前。
resolveDecorators
Bean 型セットと修飾子セットのデコレータの順序付きリストを返します。これらのデコレータは、BeanManagerが注入されたクラス、またはBeanManagerが取得された JNDI 環境名前空間の Java EE コンポーネントを含むモジュールまたはライブラリで有効になっています。AfterBeanDiscoveryイベントオブザーバーの呼び出し中に呼び出された場合、このメソッドは、AfterBeanDiscoveryイベントが発生する前にコンテナーによって検出されたデコレータのみを返すことに注意してください。- パラメーター:
types- 装飾された Bean の Bean 型のセットqualifiers- 装飾された Bean によって宣言された修飾子- 戻り値:
- 結果として得られるデコレータのセット
- 例外:
IllegalArgumentExceptionSE- Bean 型のセットが空の場合IllegalArgumentExceptionSE- バインディング型ではないアノテーションが渡された場合IllegalArgumentExceptionSE- 同じバインディング型の 2 つのインスタンスが渡された場合IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterBeanDiscoveryイベントが発生する前。
isPassivatingScope
指定されたアノテーション型をテストして、それが非活性化スコープ型であるかどうかを判断します。- パラメーター:
annotationType- アノテーション型- 戻り値:
- アノテーション型が不動態化スコープ型の場合は
true
getInterceptorBindingDefinition
特定のインターセプターバインディング型のメタアノテーションのセットを取得します。- パラメーター:
bindingType- インターセプターバインディング型- 戻り値:
- メタアノテーションのセット
getStereotypeDefinition
特定のステレオタイプのメタアノテーションを取得します。- パラメーター:
stereotype- ステレオタイプ- 戻り値:
- メタアノテーションのセット
areQualifiersEquivalent
Nonbindingでアノテーションが付けられたメンバーを考慮して、2 つの修飾子が型安全な解決の目的で同等と見なされるかどうかを判断します。- パラメーター:
qualifier1- チェックする修飾子qualifier2- チェックする修飾子- 戻り値:
- 2 つの修飾子が同等の場合は true、そうでない場合は false
- 導入:
- 1.1
areInterceptorBindingsEquivalent
boolean areInterceptorBindingsEquivalent(AnnotationSE interceptorBinding1, AnnotationSE interceptorBinding2) Nonbindingでアノテーションが付けられたメンバーを考慮して、2 つのインターセプターバインディングが型安全な解決の目的で同等と見なされるかどうかを判断します。- パラメーター:
interceptorBinding1- チェックするインターセプターバインディングinterceptorBinding2- チェックするインターセプターバインディング- 戻り値:
- 2 つのインターセプターバインディングが同等の場合は true、それ以外の場合は false
- 導入:
- 1.1
getQualifierHashCode
アノテーションハッシュコードを決定するための JDK アルゴリズムを使用して、Nonbindingでアノテーションされたメンバーを無視して、修飾子のハッシュコードを決定します。- パラメーター:
qualifier- 考慮すべき修飾子- 戻り値:
- 予選の hashCode
- 導入:
- 1.1
getInterceptorBindingHashCode
JDK アルゴリズムを使用してアノテーションハッシュコードを決定し、Nonbindingでアノテーションされたメンバーを無視して、インターセプターバインディングのハッシュコードを決定します。- パラメーター:
interceptorBinding- 考慮すべきインターセプターバインディング- 戻り値:
- インターセプターバインディングの hashCode
- 導入:
- 1.1
getELResolver
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。ELAwareBeanManagerを使用します。このメソッドは CDI 5.0 で削除されますEL 名で Bean を解決するELResolverを返します。- 戻り値:
ELResolver
wrapExpressionFactory
@DeprecatedSE(since="4.1", forRemoval=true) ExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。ELAwareBeanManagerを使用します。このメソッドは CDI 5.0 で削除されますMethodExpressionおよびValueExpressionの作成を指定されたExpressionFactoryに委譲するラッパーExpressionFactoryを返します。ラッパーExpressionFactoryによって返されるMethodExpressionまたはValueExpressionを使用して UnifiedEL 式が評価される場合、コンテナーはスコープDependentを持つオブジェクトの破棄を処理します。- パラメーター:
expressionFactory- ラップするExpressionFactory- 戻り値:
- ラップされた
ExpressionFactory
createAnnotatedType
指定されたクラスまたはインターフェースのアノテーションを読み取るために使用できるAnnotatedTypeを取得します。- 型パラメーター:
T- クラスまたはインターフェース- パラメーター:
type-ClassSE オブジェクト- 戻り値:
AnnotatedType
getInjectionTargetFactory
コンテナーが作成した
InjectionTargetインスタンスを提供するInjectionTargetFactoryの実装。このファクトリをラップして、コンテナーで作成されたインジェクションターゲットに動作を追加できます。
- 型パラメーター:
T- 型- パラメーター:
annotatedType- 注入ターゲットファクトリを作成するためのアノテーション付き型- 戻り値:
InjectionTargetFactory- 導入:
- 1.1
getProducerFactory
指定されたフィールドに対してコンテナーが作成した
Producerインスタンスを提供するProducerFactoryの実装。このファクトリをラップして、コンテナーで作成されたプロデューサーに動作を追加できます。
- 型パラメーター:
X- 宣言型- パラメーター:
field- プロデューサーファクトリを作るためのフィールドdeclaringBean- プロデューサーを宣言する Bean。プロデューサーが静的であるか、宣言オブジェクトが非コンテキストである場合、null になる可能性があります- 戻り値:
- フィールドのプロデューサーファクトリ
- 導入:
- 1.1
getProducerFactory
指定されたメソッドに対してコンテナーが作成した
Producerインスタンスを提供するProducerFactoryの実装。このファクトリをラップして、コンテナーで作成されたプロデューサーに動作を追加できます。
- 型パラメーター:
X- Bean 型- パラメーター:
method- プロデューサーファクトリを作成する方法declaringBean- プロデューサーを宣言する Bean。プロデューサーが静的であるか、宣言オブジェクトが非コンテキストである場合、null になる可能性があります- 戻り値:
- メソッドのプロデューサーファクトリ
- 導入:
- 1.1
createBeanAttributes
指定されたAnnotatedTypeのBeanAttributesを取得します。コンテナーは、実際の Java クラスの要素によって宣言されたアノテーションと型を無視し、代わりにAnnotatedインターフェースを介して提供されるメタデータを使用します。- 型パラメーター:
T- 型- パラメーター:
type-AnnotatedType- 戻り値:
- コンテナーが提供する
InjectionTargetの実装 - 導入:
- 1.1
createBeanAttributes
指定されたAnnotatedTypeのBeanAttributesを取得します。コンテナーは、実際の Java クラスの要素によって宣言されたアノテーションと型を無視し、代わりにAnnotatedインターフェースを介して提供されるメタデータを使用します。- パラメーター:
type-AnnotatedType- 戻り値:
- コンテナーが提供する
InjectionTargetの実装 - 導入:
- 1.1
createBean
<T> Bean<T> createBean(BeanAttributes<T> attributes, ClassSE<T> beanClass, InjectionTargetFactory<T> injectionTargetFactory) 指定された
BeanAttributes、Bean クラス、InjectionTargetのBeanを取得します。InjectionTargetは、Bean のインスタンスを作成および破棄し、依存性注入とライフサイクルコールバックを実行し、Bean.getInjectionPoints()の戻り値を決定します。InjectionTargetはInjectionTargetFactoryから取得されます。getInjectionTargetFactory(AnnotatedType)では、InjectionTargetで作成されたコンテナーを使用できます。- 型パラメーター:
T- 型- パラメーター:
attributes- 返されたBeanの Bean 型、修飾子、スコープ、名前、ステレオタイプ、BeanAttributes.isAlternative()の戻り値を決定するBeanAttributesbeanClass-Bean.getBeanClass()の戻り値を決定するクラスinjectionTargetFactory-InjectionTargetを取得するために使用されるInjectionTargetFactory- 戻り値:
- コンテナーが提供する
Beanの実装 - 導入:
- 1.1
createBean
<T,X> Bean<T> createBean(BeanAttributes<T> attributes, ClassSE<X> beanClass, ProducerFactory<X> producerFactory) 指定された
BeanAttributes、Bean クラス、ProducerのBeanを取得します。Producerは、デコレータのインスタンスを作成および破棄し、Bean.getInjectionPoints()の戻り値を決定します。ProducerはProducerFactoryから取得されます。getProducerFactory(AnnotatedMethod, Bean)またはgetProducerFactory(AnnotatedField, Bean)では、Producerで作成されたコンテナーを使用できます。- 型パラメーター:
T- 型X- 宣言する Bean の型- パラメーター:
attributes- 返されたBeanの Bean 型、修飾子、スコープ、名前、ステレオタイプ、BeanAttributes.isAlternative()の戻り値を決定するBeanAttributesbeanClass-Bean.getClass()の戻り値を決定するクラスproducerFactory-Producerを取得するために使用されるProducerFactory- 戻り値:
- コンテナーが提供する
Beanの実装 - 導入:
- 1.1
createInjectionPoint
指定されたAnnotatedFieldのInjectionPointのコンテナー提供の実装を取得します。- パラメーター:
field- 注入位置を定義するAnnotatedField- 戻り値:
- 提供されたコンテナー
InjectionPoint - 例外:
IllegalArgumentExceptionSE- インジェクションポイントに関連する定義エラーがある場合- 導入:
- 1.1
createInjectionPoint
指定されたAnnotatedParameterのInjectionPointのコンテナー提供の実装を取得します。- パラメーター:
parameter- 注入位置を定義するAnnotatedParameter- 戻り値:
- 提供されたコンテナー
InjectionPoint - 例外:
IllegalArgumentExceptionSE- インジェクションポイントに関連する定義エラーがある場合- 導入:
- 1.1
getExtension
META-INF/servicesで宣言された Extension クラスのコンテナーのインスタンスを取得します。- 型パラメーター:
T- 拡張機能の型- パラメーター:
extensionClass- 拡張クラスの型- 戻り値:
- 拡張インスタンス
- 例外:
IllegalArgumentExceptionSE- コンテナーに特定のクラスのインスタンスがない場合- 導入:
- 1.1
createInterceptionFactory
指定されたCreationalContextと型のInterceptionFactoryを作成します。- 型パラメーター:
T- このファクトリが動作するインスタンスの型- パラメーター:
ctx-InterceptionFactoryが作成するCreationalContextclazz- このファクトリが動作するインスタンスのクラス- 戻り値:
- T のインスタンスにサービスを追加するための新しい
InterceptionFactory - 導入:
- 2.0
ELAwareBeanManagerを使用します。このメソッドは CDI 5.0 で削除されます