2

私はしばらくの間、Spring 3 + JSF 2.0 アプリケーションを開発してきました。シンプルな Tomcat または Jetty コンテナーで実行されます。広告CDIを見ると会話範囲がうらやましい。

Spring の単純な会話スコープの実装を知っていますか? 本格的な SpringMVC + WebFlow + SpringFaces スタックを使用したくありません。会話スコープを有効にし、会話オブジェクトを挿入して開始または停止できるようにする Web フィルターが必要なだけです。CDIのように。

4

4 に答える 4

3

あなたの質問には正確ではありませんが、Spring Webflow、Spring Facesなどの使用を避けるために解決策を求めているので... DIのためだけにSpringを使用しているようです(つまり、あなたはそれほど依存していませんSpring エコシステム上)。この場合、Java EE 6 スタックへの移行を検討する価値があるかもしれません。Spring からそれほど多くを使用していないため、移行はそれほど難しくないと思います。Spring にまだ必要な Bean がある場合は、それらの CDI プロデューサーを作成できます。Spring から Java EE 6 へのいくつかの移行パスをグーグルで検索できます。

また、「重い Java EE コンテナー」が怖い場合は、jboss 7.1、Glassfish 3.1.2、および TomEE がすべて 2 秒以内に私のノートブックで起動します。

私の意見です。

于 2012-12-31T17:10:38.803 に答える
2

Apache TomEE + CODIプロジェクト(Apache MyFacesの対象)および/またはApache Deltaspike(ドキュメントがかなり若いため最新かどうかわからない)を確認する必要があります。

TomEEはCDIの強みを提供し、CODIはcdiとjsfの間に小さな統合レイヤーを追加して非常に強力にします(deltaspikeに統合されますが、まだ少し進行中です)

于 2012-12-31T19:26:25.710 に答える
0

管理対象BeanでJSF@ViewScopedアノテーションを使用して、CDI会話スコープと同じ会話のようなセマンティクスを提供します。CDIの会話スコープとJSFのビュースコープの違いの1つは、JSFビュースコープはほとんど使用できるようになっているのに対し、CDIでは会話を明示的かつ直接的に制御できることです。ただし、JSFのViewScopeを使用すると、会話の境界がどこにあるかを正確に把握できます。会話は、@ViewScopedBeanでバックアップされたページをロードすると開始し、ページを閉じると終了します。これは多くのユースケースに便利です

PrimefacesのCagatayにも、SpringのCDIスコープをシミュレートするためのこのハックがあります。

RichfacesチームのMaxKatzによるこのチュートリアルでは、JSFViewScopeの概要も説明しています。

于 2012-12-05T03:16:08.990 に答える