0

現在、Spring と Hibernate を使用しています。現時点では、(たとえば) クライアントから create object 呼び出しを行うと、サーバー側のサービス スタブに要求が届きます。サービス呼び出しは、新しい休止状態のセッション ファクトリを作成し、セッションを取得してから、トランザクションを実行する必要があります。問題は、これが毎回発生するため、使用するにはセッション ファクトリを再作成する必要があることです。そのファクトリの作成にはコストがかかるため、これは非常に無駄が多く、パフォーマンスに影響を与えるようです。

私がやりたいのは、たとえば、クライアントまたは複数のクライアントによって行われたさまざまなサービス呼び出しで、その 1 つのセッション ファクトリを再利用することです。問題は、サーバー側の機能へのエントリ ポイントがサービス コールであるため、その方法がわからないことです。異なる呼び出しが同じセッション ファクトリにアクセスできるように、何らかの方法でサーバー側に状態を保存する必要があることはわかっています。状態の保持などのスケーラビリティの問題は知っていますが、以前に作成したオブジェクトを再利用する方法が必要です。

私の質問は、Spring でこれをどのように行うかです (セッション Bean または HttpSession を使用することになっていますか)? コンテナーが起動時にこれらをセットアップすることは可能ですか?それとも、サービス要求が来るのを待つ必要がありますか?

私はほとんどがSpring初心者ですが、Webサービスの役割を理解していないだけですか?

前もって感謝します。

4

1 に答える 1

0
  1. あなたのものは、GWT + MVP によって達成される典型的な MVCシナリオです。あなたの説明に基づいて、すべての呼び出しで session-factory を作成しているようですが、これは明らかに標準的な方法ではありません。
  2. Session-factory は一度だけ作成され、すべてのリクエストは session-factory によって作成された別のセッションで実行されます。
  3. Spring では、典型的なアプローチは、セッション ファクトリをスプリング ワイヤリングと hibernateで構成することです。この構成は、アプリケーションの起動時に一度だけロードされます。
  4. すべてのサービス リクエストで、bean-container から session-factory の参照を取得し (毎回作成するのではなく)、DB 操作のためにそこからセッションを作成します。
  5. GWT+MVP+Spring+MyBatis を使用するこのプロジェクトをチェックしてください。MyBatis の代わりに Hibernate を使用していることは理解していますが、これはこのタイプのプロジェクトの参照として役立ちます。
于 2012-09-04T15:25:45.240 に答える