11.2.11. デコレータについて
デコレーターは、特定の Java インターフェースからの呼び出しをインターセプトし、そのインターフェースに割り当てられたすべてのセマンティクスを認識します。デコレーターは、何らかの業務をモデル化するのに役に立ちますが、インターセプターの一般性を持ちません。それらは、それが装飾する型を実装し、注釈が付けられた Bean、または抽象クラスですらあります。
@Decorator
。CDI アプリケーションでデコレーターを呼び出すには、beans.xml
ファイルで指定する必要があります。
例11.20 デコレータの例
@Decorator public abstract class LargeTransactionDecorator implements Account { @Inject @Delegate @Any Account account; @PersistenceContext EntityManager em; public void withdraw(BigDecimal amount) { ... } public void deposit(BigDecimal amount); ... } }
デコレートされたオブジェクトへの参照を取得するために、デコレーターには
@Delegate
インジェクションポイントが 1 つ必要になります。