第9章 CDI


9.1. CDI の概要

9.1.2. コンテキストと依存性の注入 (CDI)

コンテキストと依存性の注入 (CDI: Contexts and Dependency Injection) は、EJB 3.0 コンポーネントを Java Server Faces (JSF) 管理対象 Bean として使用できるよう設計された仕様であり、2 つのコンポーネントモデルを統合し、Java を使用した Web ベースのアプリケーション向けプログラミングモデルを大幅に簡略化します。先行する引用符は JSR-299 仕様から除外されました (http://www.jcp.org/en/jsr/detail?id=299 を参照)。
JBoss EAP 6 には、JSR-299 の参照実装である Weld が含まれます。タイプセーフの依存性注入に関する詳細は、「タイプセーフの依存性の注入」を参照してください。

9.1.3. CDI の利点

  • CDI を使用すると、多くのコードをアノテーションに置き換えることにより、コードベースが単純化および削減されます。
  • CDI は柔軟であり、CDI を使用すると、インジェクションおよびイベントを無効または有効にしたり、代替の Bean を使用したり、非 CDI オブジェクトを簡単にインジェクトしたりできます。
  • CDI で古いコードを使用することは簡単です。これを行うには beans.xmlMETA-INF/ または WEB-INF/ ディレクトリーに配置します。このファイルは空白である場合があります。
  • CDI を使用すると、パッケージ化とデプロイメントが簡略化され、デプロイメントに追加する必要がある XML の量が減少します。
  • CDI により、コンテキストを使用したライフサイクル管理が提供されます。インジェクションを要求、セッション、会話、またはカスタムコンテキストに割り当てできます。
  • また、CDI により、文字列ベースのインジェクションよりも安全かつ簡単にデバッグを行える、タイプセーフな依存性の注入が提供されます。
  • CDI はインターセプターと Bean を切り離します。
  • CDI では、複雑なイベント通知も提供されます。

9.1.4. タイプセーフの依存性の注入

JSR-299 および CDI 以前は、Java で依存性を注入するには文字列を使う方法しかありませんでした。この方法では間違いが起きやすいため、CDI によりタイプセーフな方法で依存性を注入する機能が導入されました。
CDI の詳細については、「コンテキストと依存性の注入 (CDI)」を参照してください。

9.1.5. Weld、Seam 2、および JavaServer Faces 間の関係

Seam 2 の目的は、Enterprise Java Bean (EJB) と JavaServer Faces (JSF) 管理対象 Bean を統合することでした。
JavaServer Faces (JSF) は、JSR-314 を実装します。これは、サーバーサイドユーザーインターフェースを構築するための API です。JBoss Web Framework Kit には、JavaServer Faces と AJAX の実装であるRichFaces が含まれます。
Weld は、JSR-299 で定義されている コンテキストと依存性の注入 (CDI: Contexts and Dependency Injection) の参照実装です。Weld は、Seam 2 と他の依存性注入フレームワークの影響を受けています。Weld は、JBoss EAP 6 に含まれています。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat