Annotation 1 ここでの目標 Annotation そのものについて理解する。 EJBでのAnnotationの利用と、その目的につ いて概観する。 2 Annotation とは? Annotation = 注釈 J2SE 5.0 (Tiger) から登場した新しい技術 それまで、JSR175 で議論されてきた。 EoD のための技術 3 Annotation の例 (1) “@Override” の部分が Annotation Annotation は “@” からは じまる。 @Override は、moge メソッ ドに対する Annotation Moge クラスの doIt メソッド をオーバライドしていること を示す。 public class Hoge extends Moge { @Override public void doIt() { …… } } 4 Annotation の例 (2) public class Hoge { doIt メソッドは deprecated であるこ @Deprecated とを示す。 public void doIt() { …… } } 5 Annotation の例 (3) Copyright は、Hoge クラ スに対する Annotation Annotationにはメンバを 加えることができる。 value がメンバ名、 tomoharu がメンバ値 複数のメンバを含めるこ とができる。 @Copyright( value=“tomoharu” ) public class Hoge { …… } 6 Annotation の付加 Annotation は、クラス・メソッド・フィールド・引 数などに付けることができる。 Annotation によって、さまざまな情報を付加 することができる。 7 EJB 3.0 の Entity Bean と Annotation 8 Entity Bean とは? 「永続化」されているデータとの対応に用い るもの O/Rマッピング リレーショナルデータベースの1行と、Entity Bean の一つのインスタンスが対応する リレーショナルデータベースと Entity Bean の間で同期が行われる 9 これまでの Entity Beanの開発 Home インタフェースの作成 Remote (or Local) インタフェースの作成 実装クラスの作成 Deployment Descriptor (DD) ファイルの作成 ↓ たくさんのプログラムや 設定ファイルが必要になる 10 EJB 3.0 では POJO / POJI に Annotation を加える。 開発すべきプログラムや設定ファイルを減ら すことができる。 11 Employee.javaでは (1) // Entity Bean である @Entity // EMP テーブルと関連づけられる @Table(name = "EMP") public class Employee implements java.io.Serializable { …… } 12 Employee.javaでは (2) // empNoプロパティは Entity BeanのIDである。 @Id // empNo プロパティは、テーブル中の // EMPNO項目とマッピングしている。 // また、主キーである。 @Column(name="EMPNO", primaryKey=true) public int getEmpNo() {return empNo; } ...... 13 インピーダンス・ミスマッチと Annotation(1) リレーショナルデータベースのテーブル中の 情報は、Annotation に記述されている。 テーブル名、主キー、項目名、一対多の関係な ど 旧来の EJB では、こうした情報は DD ファイル に記述されていた。 14 インピーダンス・ミスマッチと Annotation(2) Java プログラムの持つ情報 < テーブルの情報 インピーダンス・ミスマッチ Javaプログラムの持つ情報 + Annotation の情報 = テーブルの情報 インピーダンス・ミスマッチの解消 15 Annotation導入による メリット (1) これまでJ2EEで提供されている各技術を 使ってプログラムを作成するのは、なかなか 大変な作業であった。 「インタフェース」と「実装クラス」 「お決まりのパターン」の記述 設定ファイルの記述 …… 16 Annotation導入による メリット (2) Annotation を使うことで、プログラムと設定 情報の対応が明確になり、書くべきプログラ ムの量も減らせる ↓ EoD 17 Annotation の処理 (1) Annotation は単独では意味を持たない。 Annotation を処理するプログラムが必要に なる。 18 Annotation の処理 (2) 実行されているプログラムから Reflection API を用いて、Annotation を読み取 る ソースコードから apt (Annotation Processor Tool) コマンドを使う プログラマは「ファクトリ」と「プロセッサ」を作成し て Annotation を読み取る 19
© Copyright 2024 ExpyDoc