ナビゲーションリンクをスキップ

Jakarta EE Platform API v9.0.0

パッケージ jakarta.enterprise.inject.spi

ポータブル拡張統合 SPI。

参照先: 説明

パッケージ jakarta.enterprise.inject.spi の説明

ポータブル拡張統合 SPI。

ポータブル拡張機能は、次の方法でコンテナーと統合できます。

BeanManager オブジェクト

ポータブル拡張機能は、プログラムによる API 呼び出しを介してコンテナーと直接やり取りすることがあります。インターフェース BeanManager は、Bean のコンテキスト参照を取得するための操作と、ポータブル拡張機能を使用するための他の多くの操作を提供します。

コンテナーライフサイクルイベント

アプリケーションの初期化プロセス中に、コンテナーは一連のイベントを発生させ、ポータブル拡張機能をコンテナーの初期化プロセスと統合できるようにします。これらのイベントのオブザーバーメソッドは、META-INF/services で宣言された拡張機能に属している必要があります。

ライフサイクルイベントには、BeforeBeanDiscoveryAfterBeanDiscoveryAfterDeploymentValidation および BeforeShutdown が含まれます。

有効な Bean を表すインターフェース

インターフェース BeanDecoratorInterceptor および ObserverMethod は、コンテナーが Bean、インターセプター、デコレーターまたはオブザーバーメソッドのインスタンスを管理するために必要なすべてのものを定義します。

Bean のインスタンスは、有効な Bean ごとに存在します。ポータブル拡張機能は、Bean を実装し、Bean をコンテナーに登録するイベント AfterBeanDiscovery イベントを監視することにより、新しい種類の Bean のサポートを追加する場合があります。ObserverMethod のインスタンスは、有効になっているすべての Bean のすべてのオブザーバーメソッドに存在します。ポータブル拡張機能は、ObserverMethod を実装し、インスタンスをコンテナーに登録することにより、オブザーバーを追加できます。

ポータブル拡張機能は、コンテナーライフサイクルイベント型 ProcessBean またはそのサブ型の 1 つを監視することによって有効な Bean の存在を通知されるか、イベント型 ProcessObserverMethod を監視することによって有効な Bean のオブザーバーメソッドの存在を通知されます。

代替メタデータソース

ポータブル拡張機能は、XML による構成などの代替メタデータソースを提供する場合があります。

Annotated とそのサブ型により、ポータブル拡張機能は、Bean クラスに存在するアノテーションをオーバーライドするメタデータを指定できます。ポータブル拡張機能は、インターフェースの実装を担当し、それによってメタデータをコンテナーに公開します。コンテナーは、Java Reflection API を直接呼び出すのではなく、Annotated とそのサブインターフェースの操作を使用して、プログラム要素の型とアノテーションを検出する必要があります。

ポータブル拡張機能は、イベント ProcessAnnotatedType を監視し、AnnotatedTypeラップすることによって、そのメタデータをコンテナーに提供します。

Producer および InjectionTarget

インターフェース Producer および InjectionTarget は、インスタンス化と破棄、依存性注入、ライフサイクルコールバックを含む、(コンテキストまたは非コンテキスト)コンテナー管理オブジェクトの基本的なライフサイクルを抽象化します。

InjectionTarget のインスタンスは BeanManager から取得でき、ポータブル拡張機能がその制御下にあるオブジェクトに対してこれらのコンテナーサービスをリクエストできるようになります。

さらに、ポータブル拡張機能では、イベント ProcessInjectionTarget または ProcessProducer を監視することにより、コンテナーで使用される InjectionTarget または Producer の実装を独自の実装に置き換えることができます。

関連事項:
jakarta.enterprise.inject, jakarta.enterprise.context.spi
ナビゲーションリンクをスキップ

Jakarta EE Platform API v9.0.0

Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.