質問

をしているので、学習JSF2を実現いたしまでお問い合わせください、バッキングコンポーネントのレイアウトです。デザインからの視点の違いは何ですかEJBsと @ManagedBeans?

最終的に私は利用JPA、EJBは自然な選択のための事業。それは良い練習に利用するから直接当財団として説明し こちらの)?

でんぶを @ManagedBeans 部品を必要としないビジネス層(例えばビューヘルパー)または対応依頼はセッションデータです。その他の目的で、例えば上場しているさまin aグリッドから直接アクセスする.

はいいですか?私は使用 @ManagedBeans すべてのバッキング豆のクリーン層の分離の場合でも、場合によってのみ処理を移譲するEJB?

役に立ちましたか?

解決

非常に有効なうことができるようになる答えは"厳しさ"のアプローチプロジェクトに関する実がビットの冗長性と情ッ豆、EJBとして何らかの対策のビジネスロジック

A 理想 利用当財団の特徴 converters, rendered, validator, など。のバッキング豆 しれないというクリーンビジネスロジックのコードです。が実践に着目したプレゼンテーション関連するロジックが頻繁に漏れます。

このプレゼンテーション関連する論理想に時間がかかることが予想されEJB.このプレゼンテーション関連の論理によって異なり、パッケージも必要ありません。しか このプレゼンテーション関連す。

一体成分モデルのメリットのものです。でのアプローチ シーム.両方の場合、業務コンポーネントの宣言的の取引等をでへと直結させることができるのでJSF(春を使用しないするものを同様でありたいと考えておりますEJBエうにしたいときは解離する。

なので私が最終的には問題の味とサイズのプロジェクト.なんとなく想像できるため、中小規模のプロジェクトを使用するに当財団に働きます。大きなプロジェクトがこの厳しさが重要であるが、品切れしないようにしてほしいねじの層です。

他のヒント

のJava EE 6における種々の管理対象Beanの間にいくらかの重複がある:。JSF管理対象Bean(@ManagedBean)、CDIは、豆(@Named)とEJB豆(@Stateless、@Statefull、@Singleton)を管理

ビュー層で、私は@ManagedBeanに固執するために任意の特定の利点が表示されません。 CDIバリアント@Namedは、例えば、同じとよりを行うことができるようです変換範囲へのアクセスを提供します。

現在の考え方は、最終的にEJBコンポーネントモデルはまた、CDI注釈のセットとして改造されることのようです。特に、専門家グループのメンバーレザ・ラーマンは、頻繁にこのほのめかします。例えば参照してください。 Java EE 6で依存性注入 - パート1

EJB BeanはJPAを永続化するために使用されている場合は特に、ビジネスロジックを置くための最も簡単な場所残るので、

の時間では、これは、起きていないされます。

それにも関わらず、CDIは、EJBの能力を取得するかどうか、私見それはまだ「バッキングBean」をコンセプトと「ビジネスロジック」用に別のBeanの別のBeanを使用することをお勧めします。

バッキングBeanは、単にオブジェクトおよびサービス(EJB)をモデル化するためにいくつかの参照を含む、本当にスリムすることができます。 (成功または失敗時にfacesMessagesのを追加)し、小さなUIの変更を行っている(例えば、いくつかのダイアログを表示falseにブール値を設定)バッキングBeanのアクションメソッドは、サービスにほとんど直接委任することができますが、その付加価値は、フィードバックをユーザに提供していますます。

サービス(ビジネスロジック)は、任意の特定のプレゼンテーションについて何を知っているべきではありません。彼らは、JSFのバッキングBean、JAX-RS、サーブレット、スタンドアロンのJava SEリモートクライアントまたは何からも同等に使用可能であるべきです。

すべてのBeanは、CDI豆になる場合であっても、これは責任のこの基本的な区分を変更しません。

興味深い記事が、それについて知っていませんでした。しかし、私には、この記事では、より多くのJSF管理Beanへの暴言のようなにおいがします。また、タイトカップルはJSFとEJB。それはあなたがEJBの完全な制御がサービスされますしたいのですが、現実世界のSOAアプリケーションではそうではない小さな(個人的な)用途に多分面白いですが、。

と同様に何のために使用するかを、私はただ一の以上の特定のJSFのビューに関連付けられてい--which JSFのモデルを示すために@ManagedBeanに固執するでしょう。あなたは完全に非JSF固有のビジネス・ロジックおよび/またはdatamodelsため@EJBsを使用することができます。あなたは、JSFのモデルで@EJBsを注入し、アクションメソッドと多分またゲッター/セッターでそれを委任しますが、他の方法でラウンドを行うべきではない、すなわちこれは密結合につながるとなるだろう、@EJBにJSFモデルを定義していないことができます@EJBsはJSFコンテキスト外で使用不能。限り、あなたのデザインは、限り、あなたはjavax.facesクラスの@EJBパッケージから何かをインポートしないように見て、いいですね。

あなたのXHTMLからEJBを呼び出すことによって、あなたは、ビューとビジネス層に実装の選択肢の間で緊密な結合を導入しています。

あなたがEJBを呼び出すために、マネージドBeanを使用する場合は、[あるいは、ビジネスデリゲートに入れ]、ビュー層(XHTML)に影響を与えることなく、春に完全にあなたのビジネス層を変更することができます。

は、管理対象BeanとしてEJBを使用することができる(JSR 299)にあなたのための技術的に可能で、かつ非常に簡単であり、それは、これらのベンダーは、あなたが何をしたいのか、おそらくです - 具体的に接着します。しかし、それは行うには正しいことですか? - なし

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top