シュンツのつまづき日記スマートフォン用の表示で見るシュンツのつまづき日記2012-10-10デコレータCDI1.0今回はデコレータです。9.1(JDBC:postgresql-9.1-901.jdbc4.jar)【概要】デコレータはGoFデザインパターンの一つです。デコレータは既存のクラスに機能を追加するものです。CDIによるデコレータはインジェクション対象に機能を追加します。【サンプルコード】[インターフェイス]デコレータのインターフェイスです。execute();}普通のPOJOです。[実行クラス]インターフェイスを実装したクラスです。}}こちらもインターフェイスをimplementsしているだけの普通のPOJOです。[デコレータ]機能を追加するクラスです。}}デコレータのクラスにはjavax.decorator.Decoratorアノテーションをつけます。インターフェイスのimplementsとインジェクションをします。インジェクションするオブジェクトにはjavax.decorator.Delegateアノテーションをつけます。オーバーライドしたメソッドの中で、インジェクション↓オブジェクトのメソッドの実行と前後の処理を追加します。[beans.xml]作成したデコレータを有効にするにはbeans.xmlに設定を追加します。</decorators></beans>decoratorsタグの下に作成したクラスの定義を追加します。}}他のクラスからインジェクションするときはデコレータを意識する必要はありません。</f:view></html>[実行]画面からボタンをクリックした時に出力されたコンソールの結果です。SampleDecoratorApplicationImpl$Proxy$_$$_WeldSubclass#afterデコレータとデコレートされたクラスが実行されているのがわかります。月別アーカイブはてなブログをはじめよう!gloryofさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。