4

Springリクエストが同期されているかどうか疑問に思います。これが私のシナリオです:

Controller1にマップされるリクエストがあります。Controller1はそれ自体で自分のを呼び出しますDAO1.aMethod()DAO1.aMethod()別のユーザーが同じメソッドを呼び出し、最初の呼び出しがDAO1.aMethod()値を返す前に、別の要求がController1によってマップされたとします。

私はこれを求めています。なぜなら、計算を伴う複雑なアルゴリズムを実行するDAOがあり、別のユーザーからの別の呼び出しが別のユーザーを開始した場合に計算に干渉する可能性があるかどうかに興味があるからです。

私の側からのテストでは、DAOのフィールドに「iRunsCalculation」と表示され、実際のステータスを追跡すると、2番目のリクエストがリクエスト1で設定されたステータスを読み取ることができることがわかります。

4

1 に答える 1

0

「同期」とは、同時に実行するのか、それともキューに入れるのかということです。それらは確かに同時に実行できます。これが、Webコンテナが一般的に機能する方法です。Springは、ここで何が起こっているかとはあまり関係がありません。着信リクエストを処理してSpringにドロップするのはサーブレットコンテナだからDispatcherServletです。

計算がこのサービスへの現在および過去の呼び出しに何らかの形で依存している場合、同期を適切に保護していないと、「同期」の問題が発生する可能性があります。

于 2013-01-11T15:13:48.933 に答える