1

私の Web アプリケーションには、いくつかの jsf-viewscoped Bean といくつかの requestscoped Bean で構成されるプレゼンテーション レイヤーがあります。通常、これらにはプレゼンテーション ロジックのみを含めたいので、プレゼンテーション ロジックを超えるタスクがあるときはいつでも、別の Bean または EJB を使用します。したがって、一部のビュースコープ Bean では、EJB が注入されています。私の質問は次のとおりです: メソッド呼び出しをそれぞれの EJB に委任するだけの別の (たとえば、アプリケーション スコープの) Bean を作成することによって、EJB をプレゼンテーションに使用される Bean に直接注入する状況を避けるべきですか? そして: 注入された EJB はいつ初期化されますか? 注入先の Bean の初期化中に初期化された場合、これは、アプリケーションのすべての訪問者に対して、EJB も常に予約されていることを意味しますか? 私はしません それは事実だと思いますが、EJB はそのメソッドの 1 つが呼び出されたときにのみ使用されます。しかし、ビジネス層とプレゼンテーション層を適切に分離するにはどうすればよいでしょうか?

4

1 に答える 1

2

ビュー スコープのバッキング Bean に EJB を注入することは一般的であり、ベスト プラクティスです。

(ビュー スコープの) バッキング Bean は、ビューに関連する問題を処理し、ビジネス ロジックを EJB Bean に委譲します。

ビュー Bean は多くの場合 (必ずというわけではありません)、PostConstruct 内の EJB Bean からデータをロードし、ポストバック中に保持します。これは、パフォーマンスと一貫性の両方にとって非常に有益です。

于 2013-05-16T09:27:54.503 に答える