第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 に含まれています。