Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

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 つ必要になります。