Использование сессий в Spring-MVC - PullRequest
0 голосов
/ 10 мая 2018

Поскольку я новичок в Spring MVC, я застрял в этой проблеме.Я пытаюсь использовать Session Scope, где я хочу, чтобы список был разделен между несколькими контроллерами в сеансе http.Но я не хочу, чтобы эта сессия использовалась разными HTTP-сессиями.Каждый http-сеанс должен иметь свой собственный список (хранилище), который используется всеми его контроллерами.

Проблема, с которой я сталкиваюсь, заключается в том, что этот список является общим для всех запросов, которые выполняются параллельно.Например,Если я нажимаю на контроллер на своем компьютере, и какой-то другой запрос поступает с другого компьютера, они оба используют один и тот же список (хранилище сеансов)

Это класс MySession, который содержит список, который должен использоваться несколькимиКонтроллеры и каждый контроллер могут выполнять операции с этим списком.

@Component
@Scope("session")
public class MySession
{
   public List<String> mylist;
}

Вот мой контроллер, который использует объект класса MySession. Аналогично существуют другие контроллеры, которые могут обновлять список в сеансе.

@Controller
@Scope("request")
public class SessionController
{
   @Autowired
   private MySession mySession;

   @RequestMapping("/updateSession")
   public ModelAndView  updateSession(@RequestParam("id") int id)
   {
      //Operation on List(add remove items)
   }  
}

Итак, теперь происходит то, что List in MySession выполняет мои другие запросы, так как я думаю, что все параллельные запросы используют один и тот же список.

Пожалуйста, помогите мне, как я могу решить эту проблему, если естьесть что-то, чего мне не хватает?Заранее спасибо.

...