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

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

肥皂起泡泡
浏览 835回答 7
7回答

SMILET

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

HUH函数

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

慕码人8056858

可以使用application对象

慕桂英3389331

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

慕桂英4014372

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

阿波罗的战车

static修饰的变量单独存在分区里,只有一份
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java