自分用 Java EE 用語集

Java EE 関連で3文字の英語が頻出するので自分用まとめです。

まだまだ勉強中でおかしな点がたくさんあるはずなので鵜呑み厳禁です。 間違い等があればご教示願います。Java EE7 準拠です。

Java EE

Java Platform, Enterprise Edition 略して Java EE

Java EE5 より前は Java 2 Platform, Enterprise Edition (J2EE) という名称。 同一人物。 Java SE の企業用機能拡張版。 企業用だけど企業じゃなくても使って良い。 Web 系機能追加版の意味合いが強い気がする。

Java EEJava EE SDK には参照実装として GlassFish が同梱されている。

GlassFish

Java EEアプリケーションサーバ(Java EE サーバ)。 OSSJava EE の機能がフルで使える。

Tomcat なんかは基本的には Java EE の一部の機能しか使えない。

Servlet

HTTPリクエストに対する処理をするための Java プログラム。 ある Class が Servlet であることをコンテナに知らせるためには web.xml に定義する必要がある。

MVCモデルの Controller に相当。

JSP

JavaServer Pages の略。 レスポンスを HTML + Java scriptlet で記述できるようにしたもの。 実行時はサーブレットコンテナによって Servlet に変換される。

MVCモデルの View に相当。

JavaBeans

すごくざっくり言うと Servlet 以外の Java プログラム。

細かく言えば以下を満たす Class。

普通にカプセル化して作って serializable にしたら出来上がってる感覚。

MVCモデルの Model に相当。

POJO

Plain Old Java Object の略。 JavaBeans のような Class から生成されるオブジェクトのこと。

「昔ながらの単純な Java オブジェクト」

JSF

JavaServer Faces の略。 コンポーネントベースの Java による Web アプリケーションフレームワークJava EE の仕様の一つ。

MVC の Controller を自動で実装してくれるイメージ。 MVVM なんていわれたりもする?

Ajax を実装するのがものすごく簡単。

Facelets

JSF の画面表示担当。 JSF ファイル(.jsf)は JSFJSP

XHTML 形式で記述。 HTML5 Friendly Markup によって HTML とほぼ同じ形式で記述できる。

EJB

Enterprise JavaBeans の略。 Java EE の JavaBeansJava EE サーバに含まれる EJB コンテナが管理。

アノテーションを記述することでトランザクション管理とかの機能をコンテナから提供してもらう。

以下の種類がある。

  • セッションビーン
    • ステートレス
    • ステートフル
    • シングルトン
  • メッセージドリブンビーン

DI

依存性の注入(Dependency injection)アノテーションを記述することで、他のクラスとの結合を疎にする。

オブジェクトの管理を DI コンテナに任せて new したときにオブジェクトを DI コンテナから取得する。といった感じ。

CDI

コンテキストと依存性の注入(Contexts and Dependency injection)

コンテキストもアノテーションで記述することで、オブジェクトのスコープを定義できる。 このコンテキストはアノテーションで指定したオブジェクトのスコープの意。

DAO

Data Access Object の略。

データベースとプログラムの間を取り持つインターフェースになってくれるオブジェクト。 またはそのデザインパターン

普通はデータベースアクセス用 Class を作ると思う。それのこと。

JPA

Java Persistence API の略。 Java EE のデータベース担当 API

ORM をアノテーションで指定したり、JPQL で問い合わせたりする。

テーブルの行をエンティティで表し、エンティティマネージャーがエンティティを操作。

エンティティの変更情報は永続化コンテキストで管理する。 永続化コンテキストがデータベースと同期を行うのはトランザクションの終了時やクエリの発行時など。

ORM

オブジェクト関係マッピング(O/Rマッパー, Object-relational mapping)

データベースとオブジェクトを紐付けてくれる。 Java EE ではアノテーションで紐付けを指定する。

JPQL

Java Persistence Query Language の略。 JPASQL

クエリにオブジェクトの情報が入り込むので SQL とは文法がまったく違う。