ステレオタイプ

Web Beansは、さまざまな設定をアノテーションで行うことがおわかりだろう。こうしたアプローチを推し進めると、ソースコードがアノテーションだらけになってしまい、可読性を損なう可能性もある。

こうした状況を避け、またシステムごとの「パターン」を再利用する目的で使うのが「ステレオタイプ」という仕組みだ。インターセプタやスコープ、デプロイメントタイプなど、複数のコンポーネント間で共通なパターンをひとくくりにしておくことができる。

リスト36

    <strong>@Stereotype</strong>
    @Log
    @RequestScoped
    @Named
    @Production
    @Retention(RUNTIME)
    @Target(TYPE)
    public @interface OurComponent {
    }

@Stereotypeを付与したアノテーションを作成し、あとはコンポーネントに付与できるアノテーションを複数付与するだけだ。使用する場合は、作成したアノテーションをコンポーネントのクラスに付与すればよい。

リスト39

    @OurComponent
    public class GreetingPrinter {
      ...
    }

最後に - 期待してソンはない!

駆け足で、Web Beansの仕様全体を眺めてみたがいかがだったであろうか。世の中に「DIコンテナ」と呼ばれるプロダクトは数多くあるが、それらが持つさまざまな利点や機能を上手く抽出し、非常にコンパクトな仕様ながらも高機能、というのが筆者の感想だ。Web Beansの仕様策定が完了し、Java EE 6準拠のアプリケーションサーバが登場するのはまだ先の話になるだろうが、大きな期待を抱いて待つ価値があると言えよう。