由于我刚接触弹簧MVC,我仍然坚持这个问题。 我正在尝试使用会话范围,我希望在http会话中跨多个控制器共享一个列表。但我不希望这个会话由不同的http会话共享。每个http会话都应该有自己的列表(存储),在其控制器之间共享。
我面临的问题是,此列表在并行运行的所有请求之间共享。 例如。如果我在我的机器上按下控制器并且有其他请求到来 从另一台机器,他们都使用相同的列表(会话存储)
这是MySession类,它包含一个需要在多个控制器之间共享的List,每个控制器都可以对此列表进行操作。
@Component
@Scope("session")
public class MySession
{
public List<String> mylist;
}
这是我的控制器使用MySession类对象,类似地,还有其他控制器可以在会话中更新List。
@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)
}
}
所以现在发生的事情是MySession中的List正在影响我的其他一些请求,因为我认为所有并发请求都使用相同的列表。
请帮助我,如果有什么我遗漏的话,我怎么能解决这个问题 要求任何修改。 提前谢谢。