为了账号安全,请及时绑定邮箱和手机立即绑定

springmvc中,定义一个static变量,那么所有用户请求取到的该static变量是同一个吗

springmvc中,定义一个static变量,那么所有用户请求取到的该static变量是同一个吗

肥皂起泡泡 2019-02-26 19:14:20
用springmvc写一个的javaweb项目,在这个项目中,我定义了一个static类型的map,用于存放一些记录数据。我希望,所有访问网站的用户,取到的该staitc类型的map都是同一个实例。比如A用户访问该map,并在这个map中添加了一条记录,那么当B用户请求时,可以看到这个map中有A刚刚添加的数据 这样操作能否实现『所有用户共享一个static变量』的要求呢? 为了实现这个要求,使用static变量是否合适?还是我应该用redis之类的把它存下来呢?
查看完整描述

7 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

static 变量可以,刚刚的回答有点错误,和是否单例模式没有关系。static 变量只存在一份。

查看完整回答
反对 回复 2019-03-01
?
HUH函数

TA贡献1836条经验 获得超4个赞

业务大了之后,一个javaweb实例肯定是不够的,建议使用redis。

查看完整回答
反对 回复 2019-03-01
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

可以使用application对象

查看完整回答
反对 回复 2019-03-01
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

static变量是可以的,但是不建议直接使用map,建议使用线程安全的map

查看完整回答
反对 回复 2019-03-01
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

不建议你这样使用静态变量,正像cauhn说的那样,如果网站规模大了,你很可能需要同时运行多个JVM进程(甚至跨服务器)做负载均衡,这时候进程内部的同步手段就不能用了,只能用跨进程的数据同步方式,比如数据库或者redis之类的缓存系统。

查看完整回答
反对 回复 2019-03-01
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

static修饰的变量单独存在分区里,只有一份

查看完整回答
反对 回复 2019-03-01
  • 7 回答
  • 0 关注
  • 834 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信