第11章 CDI


11.1. CDI の概要

11.1.1. CDI の概要

11.1.2. コンテキストと依存関係の注入 (CDI)

Contexts and Dependency Injection (CDI) は、EJB3.0 コンポーネントを JavaServer Faces (JSF) マネージド Bean として使用できるように設計された仕様であり、2 つのコンポーネントモデルを統合し、Web ベースのアプリケーションのプログラミングモデルを大幅に簡素化します。Java。 上記の引用は、JSR-299 仕様から引用したものです。http://www.jcp.org/en/jsr/detail?id=299
JBoss EAP には、JSR-299 のリファレンス実装である Weld が含まれています。タイプセーフな依存性注入の詳細については、を参照してください。「タイプセーフな依存性注入について」

11.1.3. CDI の利点

CDI の利点は次のとおりです。
  • コードの大きなチャンクを注釈に置き換えることで、コードベースを簡素化および縮小します。
  • 柔軟であり、インジェクションおよびイベントを無効または有効にしたり、代替の Bean を使用したり、非 CDI オブジェクトを簡単にインジェクトしたりできます。
  • CDI で古いコードを使用するのは簡単です。META-INF/ または WEB-INF/ ディレクトリーに beans.xml を含めるだけで済みます。ファイルは空にすることができます。
  • パッケージ化とデプロイメントを簡素化し、デプロイメントに追加する必要のある XML の量を削減します。
  • コンテキストを介したライフサイクル管理を提供します。インジェクションを要求、セッション、会話、またはカスタムコンテキストに割り当てることができます。
  • また、文字列ベースのインジェクションよりも安全かつ簡単にデバッグを行える、タイプセーフな依存関係の注入が提供されます。
  • インターセプターを Bean から切り離します。
  • 複雑なイベント通知を提供します。

11.1.4. タイプセーフな依存性注入について

JSR-299 および CDI の前は、Java に依存性を注入する唯一の方法は文字列を使用することでした。これはエラーが発生しがちでした。CDI には、タイプセーフな方法で依存性を注入する機能が導入されています。
CDI の詳細については、を参照してください。「コンテキストと依存関係の注入 (CDI)」

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

Seam 2 の目標は、Enterprise Java Beans (EJB) と JavaServer Faces (JSF) で管理される Bean を統合することでした。
JavaServer Faces (JSF) は JSR-314 を実装しています。これは、サーバーサイドユーザーインターフェースをビルドするための API です。JBoss Web Framework Kit には、JavaServerFaces と AJAX の実装である RichFaces が含まれています。
Weld は、JSR-299 で定義されている Contexts and Dependency Injection (CDI) のリファレンス実装です。Weld は、Seam2 およびその他の依存性注入フレームワークに触発されました。溶接は JBoss EAP 6 に含まれています。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.