CDIBeanを使用してセットアップしたいTomcat6JSFWebアプリケーションがあります。ただし、プロジェクトを徐々にCDIに変換する必要があります。
私の質問は、CDIBeanと従来のJSFマネージドBeanを相互に注入できるかどうかです。
ありがとう。
CDIBeanを使用してセットアップしたいTomcat6JSFWebアプリケーションがあります。ただし、プロジェクトを徐々にCDIに変換する必要があります。
私の質問は、CDIBeanと従来のJSFマネージドBeanを相互に注入できるかどうかです。
ありがとう。
すべての JSF マネージド Bean (JMB) は、自動的に CDI マネージド Bean (CMB) になるか、 beans.xmlマーカー ファイルを使用してそのように認識されます。(CMB の要件は非常に低く設定されており、基本的には非パラメーター コンストラクターの存在を指示するだけです。)
これは、追加の労力をほとんどかけずに、すべての JMB を使用 (読み取り: 注入) できるはずであることを意味します。
ただし、JMB は CMB とは異なるスコープを使用するため ( javax.faces.*
vs. javax.enterprise.*
) 、問題が発生します。
これらは、相対的に単純な CDI 拡張機能を登録することによって最もよく解決されます。CDI サーバー (Tomcat の場合) が起動すると、観察できるいくつかのイベントが発生します。これは、JMB を検出して変換できる場所です。正しくスコープされた CMB。
ただし、ハッキングを開始する前に: これらはすべてSeam 3 Faces モジュールによって既に行われています。これをクラスパスに入れるだけで、すべての JSF スコープが CDI スコープにブリッジされます。