第7章 Jakarta Contexts and Dependency Injection
7.1. Jakarta Contexts and Dependency Injection の概要 リンクのコピーリンクがクリップボードにコピーされました!
7.1.1. Jakarta Contexts and Dependency Injection について リンクのコピーリンクがクリップボードにコピーされました!
Jakarta Contexts and Dependency Injection 2.0 は、Jakarta Enterprise Beans 3 コンポーネントを Jakarta Server Faces 管理 Bean として使用できるようにする仕様です。Jakarta Contexts and Dependency Injection は 2 つのコンポーネントモデルを統合し、Java を使用した Web ベースのアプリケーション向けプログラミングモデルを大幅に簡略化します。Jakarta Contexts and Dependency Injection 2.0 は、Jakarta Contexts and Dependency Injection 2.0 Specification で参照できます。
JBoss EAP には、JSR 365: Contexts and Dependency Injection for Java 2.0 のリファレンス実装である Weld が含まれています。JSR-365 の Jakarta EE と同等の仕様は Jakarta Contexts and Dependency Injection 2.0 Specification です。
Weld は、Java EE Platform の Contexts and Dependency Injection のリファレンス実装です。Contexts and Dependency Injection は、依存関係インジェクションおよびコンテキストライフサイクル管理の JCP 標準です。さらに、Contexts and Dependency Injection は Java EE で最も重要で一般的な部分の 1 つです。
Jakarta Contexts and Dependency Injection の利点
Jakarta Contexts and Dependency Injection には以下の利点があります。
- 多くのコードをアノテーションに置き換えることにより、コードベースが単純化および削減されます。
- 柔軟であり、インジェクションおよびイベントを無効または有効にしたり、代替の Bean を使用したり、非 Contexts and Dependency Injection オブジェクトを簡単にインジェクトしたりできます。
-
デフォルトとは異なる設定をカスタマイズする必要がある場合、任意で
beans.xmlファイルをMETA-INF/またはWEB-INF/ディレクトリーに含めることができます。ファイルは空にすることができます。 - パッケージ化とデプロイメントが簡略化され、デプロイメントに追加する必要がある XML の量が減少します。
- コンテキストを使用したライフサイクル管理が提供されます。インジェクションを要求、セッション、会話、またはカスタムコンテキストに割り当てることができます。
- 文字列ベースのインジェクションよりも安全かつ簡単にデバッグを行える、タイプセーフな依存関係の注入が提供されます。
- インターセプターと Bean が切り離されます。
- 複雑なイベント通知が提供されます。
7.1.2. Relationship Between Weld、Seam 2、Jakarta Server Faces リンクのコピーリンクがクリップボードにコピーされました!
Weld は、Java EE Platform の Contexts and Dependency Injection のリファレンス実装です。Java EE Platform の Contexts and Dependency Injection と同等の Jakarta は Jakarta Contexts and Dependency Injection 2.0 仕様 です。Weld は、Seam 2 と他の依存関係注入フレームワークの影響を受けており、JBoss EAP 6 に含まれています。
Seam 2 の目的は、Enterprise Java Bean と JavaServer Faces 管理対象 Bean を統合することでした。
Jakarta Server Faces 2.3 仕様 は、サーバー側のユーザーインターフェイスをビルドするための API です。