2016-04-26 15 views
-1

私は、複数のユーザーが自分のアプリケーションに同時にアクセスして操作を実行するためのスプリングベースのWebアプリケーションを作成するという問題があります。spring-mvc + java + concurrency

私は、特定のユーザのIP、ポート、およびその他の情報をCAConstant.IP, CAConstant.PORTなどのように割り当てるグローバル定数を使用しました。特定のユーザに基づいて操作を実行するために、これらの定数を異なるクラスで使用します。

問題は、複数のユーザーアクセスアプリケーションが並行して最後のユーザーが最終レポートで競合する以前のグローバルコンテンツを上書きしてしまう(メイン関数が同期しなかった場合)という問題です。

この問題を解決するにはどうすればよいですか、または複数のユーザーが同じWebアプリケーションにJavaのスレッドを使用して同時にアクセスできるようにするにはどうすればよいですか?

+1

あなたはグローバル**定数**と言っていますが、実際にはグローバル**変数**ですか?グローバル変数の代わりにセッションにデータを格納します。 – Jesper

答えて

0

HttpSessionを使用して、ユーザーごとの情報を格納します。セッションから

String ipAddress = request.getSession.getAttribute("CAConstantIp"); 

を属性を取得するには、セッション中に

request.getSession.setAttribute("CAConstantIp", ip_address); 

を情報を入れて

HttpSession用スプリングガイドを見てみましょう。

関連する問題