1

EJB3.1 で JSF を使用する場合のさまざまなオプションとベスト プラクティスについていくつか質問があります。私が持っているメンタル モデルは、非常に多くの選択肢と組み合わせが利用可能であることを考えると、明確とはほど遠いので、いくつかの質問は意味をなさないかもしれません.

JSF/Faceletsは、 Beanクラスで使用される実際のアノテーション (javax.faces.bean .* または javax.enterprise.context.*)。

Facelets のxhtmlコードを変更せずに、Bean クラスのインポートを変更するだけで、JSFCDIのスコープ アノテーションを切り替えることができるというのは正しいでしょうか?

CDIを使用してすべてのスコープとライフサイクル (およびインジェクション) の注釈を含むxhtmlマークアップ コードにのみ JSF/Facelets を使用する必要があるという確立されたパターンですか?

JBoss AS設定では、JSF バッキング Bean のライフサイクル管理 ( JSFまたはCDIアノテーションを使用) はどこで行われますか? Web コンテナーまたは EJB3 コンテナー内?

CDI によってSessionScoped Bean を提供できる場合、典型的な Web アプリケーションでは、タイプ@Entity以外の EJB3 Bean を使用する必要はありますか。データベース?

4

1 に答える 1

3

Facelets の xhtml コードを変更せずに、Bean クラスのインポートを変更するだけで、JSF と CDI のスコープ アノテーションを切り替えることができるというのは正しいでしょうか?

はい。


JSF/Facelets は、CDI を使用してすべてのスコープとライフサイクル (およびインジェクション) 注釈を含む xhtml マークアップ コードにのみ使用する必要があるという確立されたパターンですか?

JSF は CDI に移行しています。今後のJSF 2.2の新しい@FlowScopedアノテーションは、CDI API から拡張されているため、これを証明しています。唯一の欠点は、CDI が非常に有用な JSF アノテーションの標準アノテーションを提供しないことです。会話を手動で開始および終了するか、MyFaces CODIなどの CDI 拡張機能を確認する必要があります。@ViewScoped@ConversationScoped


JBoss AS 設定では、JSF バッキング Bean のライフサイクル管理 (JSF または CDI アノテーションを使用) はどこで行われますか? Web コンテナーまたは EJB3 コンテナー内?

Web コンテナー (WAR のフレーバー)。JSF はServlet APIの上に構築されているため、間違いなく Web コンテナーです。


CDI によって SessionScoped Bean を提供できる場合、典型的な Web アプリケーションでは、@Entity タイプ以外の EJB3 Bean を使用する必要はありますか。データベース?

これ@Entityは、EJB ではなく JPA の一部です。は@Entity、データベース テーブルにマップされたモデル クラスで使用され、通常はレイヤー間でデータを転送することだけを目的としています。あなたが最後に説明していることは、@StatefulEJB の候補のように聞こえます。@Stateless@StatefulEJBをよりよく理解するには、次の詳細な回答に進んでください: JSF リクエスト スコープ Bean は、すべてのリクエストで新しいステートフル セッション Bean を再作成し続けますか?

于 2012-06-25T22:48:11.923 に答える