JBoss Seam で体験する Java EE 5
「EJB3.0」は、「JSF」と共に「Java
EE 5」の中心的な役割を担う技術です。
O/Rマッピング・フレームワーク「Hibernate」やDIコンテナ「Spring
Framework」等のいわゆる"アンチEJB"の声を取り入れて、従来のEJBから大きな変貌を遂げました。
僕自身にはまだ「EJB3.0」に関する知識が不足していますが、「Hibernate」にかなり近い仕組みになったと考えて良さそうです。
そして、「JBoss
Seam」は、「JSF」と「EJB 3.0」とを結び付けるWebアプリケーションフレームワークです。
JavaによるWebアプリケーション開発の将来像を考える上で、大いに参考になるのではないでしょうか。
「JBoss Seam」の仕組みを大雑把に説明すると、
「JBoss
Seam」=DIコンテナ「JBoss
Microcontainer」+プレゼンテーション層のフレームワーク「Facelets」
だと言ってよいでしょう。
「EJB 3.0」自体にもDIコンテナ的な機能は備わっていますが、「JBoss
Microcontainer」によって更にその機能が強化されることになります。
このため、「JBoss
Seam」においては、「EJB 3.0」によるアノテーションと「JBoss Microcontainer」によるアノテーションが混在します。
ちょっと複雑で分かりにくい気もしますが、上記の機能によって「Tomcat」のような「EJB
3.0」に未対応の環境で「JBoss Seam」を動作させることもできます。(この場合は、「Hibernate」を利用します。)
一方、「Facelets」は、「JSF」において「Velocity」のようなテンプレート型のアプローチを可能にします。
テンプレート内にJSFのカスタムタグを記述するという方法の他に、HTMLタグにjsfc属性を埋め込む形で、HTMLタグをJSFコンポーネントのように扱うこともできます。
また、ユーザー自身が「Facelets」の機能を拡張することも可能になっています。
なお、「Facelets」の開発者であるJacob氏は、JBoss社とは直接の関係はないようです。
興味を持たれた方は、JBoss社が提供する「Eclipse」
ベースのIDE 「JBoss
Eclipse IDE 」を用いて、デモアプリケーションを実行してみると良いでしょう。
→Seam
in Eclipse Flash Demo
関連情報
・先取り研究!
Java EE 5
・EJB3.0入門講座
・JSFとEJB
3.0を統合 - JBoss Seam 1.0 beta 1
・JBoss/Seam
と EJB,Spring 特徴・機能比較
・SeamでJavaプロジェクト開発を大幅に効率化する
・Seam
- Contextual Components