EJB 3.0(Public Draft)入門記 Simplified API Chapter2
Chapter2に突入します。気を抜くと単なる翻訳になってしまうなぁ。要点を絞って進みたいと思います。
Chapter2 Overview of the EJB 3.0 Simplified API
EJB 3.0はEnterprise JavaBeansのアーキテクチャを単純化することに焦点をあわせています。主な単純化は次のもの。- ホームインタフェースやコンポーネントインタフェース仕様を不要とする。
- javax.ejb.EnterpriseBeanインタフェース仕様を不要とする。
- dependency injectionの機能やシンプルなlook upのAPIを定義する。
- ディスクリプトメントディスクリプターに替わるものとしてメタデータアノテーションを導入する。
- パーシスタントコンポーネントではなくJavaクラスの直接使用をベースにした軽量なO/Rマッピング機能を定義することでオブジェクトの永続化を単純化する。
パーシスタントコンポーネントというのはエンティティBeanのことだと思います。「軽量な」というのはエンティティBeanじゃなくてPOJOだからといった意味合いでしょうか?
2.1 Metadata Annotation
J2SE 5.0で導入されたメタデータアノテーションはEJB 3.0を使ったアプリケーションの開発を単純化する際の重要な要素だと言っています。アノテーションは次のように使われるとのこと。- コンテナの挙動をコントロールする (specify expected requirements on container behavior)
- サービスやリソースのinjectionを要求する
- ORマッピングを指定する
メタデータは以前のバージョンのEJB仕様で必須だったディスクリプトメントディスクリプターの代替として使用されます。ただ、EJB 3.0ではメタデータは必須ではなく、ディスクリプトメントディスクリプターも使うことができるそうです。
2.1.1 Deployment Descriptors
ディスクリプトメントディスクリプターはメタデータアノテーションのオーバーライドする仕組みだそうです。アノテーションとディスクリプトメントディスクリプターの両方で定義されていた場合はディスクリプトメントディスクリプターが優先されるということですね。ディスクリプトメントディスクリプターを使う例として、開発の最終局面やアセンブリ作業で特定の開発環境に向けたカスタマイズを行う場合が挙げられています。
ディスクリプトメントディスクリプターを使うのはまれだろうと書かれています。
混在させるならちゃんとルールを明文化しないと混乱の元になりそうな気がします。
2.2 Interoperability and Migration Between EJB 3.0 and EJB 2.1 and Earlier Clients and Beans
タイトルどおり、EJB 3.0 と EJB 2.1 以前のクライアントやコンポーネントは相互運用できるということです。chapter 9の「Compatibility and Migration」でもうちょっと詳しく述べられているようなのでchapter 9に進んだら実際に動かして確認してみようかな。相互運用性により既存のアプリケーションをEJB 3.0 へスムーズに移行させるのに役に立つそうです。このあたりは結構、強調しているような印象を受けます。
EJB 1.0 から EJB 2.0への移行が地獄のようだったという話を聞いたことがありますがそのような苦労はもう味わなくてもいいってことでしょうか。
chapter 2終わり。たったの2ページでした。Chapter 3からは実際に動かしてみるつもりです。