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

Jakarta EE Platform API v9.0.0

パッケージ jakarta.decorator

デコレータに関連するアノテーション。

参照先: 説明

パッケージ jakarta.decorator の説明

デコレータに関連するアノテーション。

デコレーターは 1 つ以上の Bean 型を実装し、それらの Bean 型を実装する Bean のビジネスメソッド呼び出しをインターセプトします。これらの Bean 型は装飾型と呼ばれます。

デコレータは、管理された Bean アノテーション付き @Decorator です。

デコレータは表面的にはインターセプタに似ていますが、ビジネスセマンティクスで操作を直接実装するため、ビジネスロジックを実装でき、逆に、インターセプタが最適化されている横断的問題を実装できません。デコレーターはインターセプターの後に呼び出されます。

装飾された型

デコレーターの装飾された型のセットには、SerializableSE を除く、Java インターフェースである管理対象 Bean のすべての Bean 型が含まれます。デコレーター Bean クラスとそのスーパークラスは、デコレーターの装飾型ではありません。デコレータクラスは抽象である場合があります。

デコレータはすべてのメソッドをインターセプトします:

デコレータは抽象クラスの場合があり、すべての装飾された型のすべてのメソッドを実装する必要はありません。

デリゲートインジェクションポイント

すべてのデコレータにはデリゲートインジェクションポイントがあります。デリゲートインジェクションポイントは、@Delegate のアノテーションが付けられた Bean クラスのインジェクションポイントです。

デリゲートインジェクションポイントの型は、装飾されたすべての型を実装または拡張する必要があります。デリゲートインジェクションポイントの型を実装するためにデコレータは必要ありません。

有効なデコレーター

デフォルトでは、Bean アーカイブには有効なデコレータがありません。デコレータは、Bean アーカイブの beans.xml ファイルの <decorators> 要素に Bean クラスをリストすることにより、明示的に有効にする必要があります。デコレータ宣言の順序によって、デコレータの順序が決まります。リストの前半にあるデコレータが最初に呼び出されます。

次の場合、デコレータは Bean にバインドされます。

マネージ Bean クラスが final として宣言されている場合、デコレーターがない可能性があります。マネージド Bean に非静的、非プライベートの final メソッドがある場合、そのメソッドを実装するデコレーターがない場合があります。

デコレータインスタンスは、デコレートするオブジェクトの依存オブジェクトです。

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

Jakarta EE Platform API v9.0.0

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