CDI拡張モジュールを作ろう

これからしばらくの間、CDI (Contexts and Dependency Injection)仕様の Portable Extensionsをテーマに書いていこうと思います。

Portable Extensions SPIを使うことによって、コンテナに新規機能を作り込んだり、外部モジュールとJavaEEを透過的に連携させることが可能になります。実際、ResinのEJB 3.1実装はCDIの上に作られているようです(このあたりの解説はTSSの記事にわかりやすくまとめられています)。

Portable Extensions を調べるための資料としては以下があります。

CDIのJavaDocとWeldドキュメントがあれば概要は理解できると思います。仕様の細部について確認するときにはCDI仕様を参照することも必要になるかもしれません。残念ながら、現時点では、日本語の資料はありません(だからこそ、このブログを書いているのです!)。

Portable Extensionsを使った拡張モジュールの作成方法を理解するには、すでに作成済みのモジュールのソースコードを参照するのが良いでしょう。WeldのexamplesにはPortable Extensionsのサンプルは含まれていませんが、きっとSeam 3 モジュールのソースが参考になるでしょう。

このSPIは拡張モジュールとCDIコンテナ間のインタフェースを定めたもので、CDIコンテナはBeanを管理するための各種メタモデルを定義しています。このメタモデルの意味がわからないと拡張モジュールを作るのは難しそうです。まずは、SPIが提供するメタモデルとその振る舞いについて基本を確認する必要がありそうです

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。