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

Jakarta EE 8 仕様 API

パッケージ javax.decorator

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

参照先: 説明

パッケージ javax.decorator の説明

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

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

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

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

装飾されたタイプ

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

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

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

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

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

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

有効なデコレーター

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

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

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

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

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

Jakarta EE 8 仕様 API

Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.