Servlet 3.0 非同期 API の内部では、サーブレットがスレッドのマルチプレクサ プールによって処理されるように指定されています。これで getCurrentSession の動作はどうなりますか? アイドル状態のためにマルチプレクサ スレッドが破棄されるまで、セッションを開いたままにしますか?
1 に答える
2
サーブレット リクエストは常にスレッド プールによって処理されるため、サーブレット 3.0 では新しい機能は導入されていません。トランザクションのコミット後に (デフォルトで) get closed から取得されたスレッドにバインドされたSession
sgetCurrentSession()
であるため、トランザクション管理を正しく実装している限り、スレッド プールで問題が発生することはありません。
Servlet 3.0 の新しい点は、非同期リクエスト処理のさまざまなフェーズをさまざまなスレッドで処理できることです。したがって、Session
これらのフェーズ全体でスレッド バインドを使用することはできません。Session
ただし、 1 つの処理フェーズ内でスレッド バインドを使用することはできます。
また、非同期処理は、Open Session in View パターンの問題を引き起こします。
ただし、非同期 API を使用しない限り、これらの問題はすべて問題になりません。
于 2012-04-11T19:54:03.797 に答える