我有一个问题,我有一个基于Spring-MVC的项目。其中有一个包含所有用户都可以访问的静态变量的类。所有Bean都是单例,当多个用户访问应用程序时会产生问题:最后一个用户在前一个用户执行任务的同时修改静态变量。因此,在最后一个用户访问之前用户的数据之后,该数据与最后一个用户的数据重叠,这会在报告中产生冲突。我也是用户原型bean,但由于静态变量,我没有找到任何解决方案。所以任何人都有解决这个问题的方法吗?感谢。
答案 0 :(得分:1)
首先:使用db,并在那里保存数据。如果重新启动程序,用户的所有更改都将被丢弃。
第二:你核心地标记了它,因为它是一个可靠的问题:制作同步块,保留版本,在进行同步块检查时,如果更改正在更改最新版本或上一个版本: 如果你改变了最新的提交 - 好的,如果它不是:处理例外。
第三:这闻起来很糟糕。您确定需要所有用户MODIFY一个参数吗?你是否记录了修改者以及如何修改它?单身人士主要用作只读不可变对象,在整个应用程序中共享信息。并且:请不要使用静态可变变量。严重。