社区
Web 开发
帖子详情
关于Spring controller类全局变量使用的问题。
u013938874
2015-08-04 11:24:53
每当打开一个页面都会修改这个全局变量的值,可是每个页面都要用自己原来的值,这个问题要怎么解决,
实际情况就是数据列表页点击修改后,会将目标model放在全局变量中,修改后用页面的值替换全局变量的值,可是如果多个用户同时使用这个页面的修改功能,就会使全局变量变乱,有没有好的解决方法。
...全文
1296
3
打赏
收藏
关于Spring controller类全局变量使用的问题。
每当打开一个页面都会修改这个全局变量的值,可是每个页面都要用自己原来的值,这个问题要怎么解决, 实际情况就是数据列表页点击修改后,会将目标model放在全局变量中,修改后用页面的值替换全局变量的值,可是如果多个用户同时使用这个页面的修改功能,就会使全局变量变乱,有没有好的解决方法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Defonds
2015-08-04
打赏
举报
回复
用 map。 每个用户的 sessionid 是 key,每个用户的值是 value。
Golden_Dog
2015-08-04
打赏
举报
回复
既然是每个页面都要用到的,而且还各不相同。而且还要用全局变量。 那么就用map(“每个页面”,“对应的model”) 如果说你是要不同的用户要不同的对应model那么:要么直接存数据库。要么threadlocal。 如果不同的用户采用的是同一个对应model的话,那么注意一下:线程安全问题即可
执笔记忆的空白
2015-08-04
打赏
举报
回复
可以试试楼上的方法
Spring
Controller
中
全局
变量
引发的线程安全
问题
引自:
Spring
Controller
中
全局
变量
引发的线程安全
问题
- JavaShuo 在
Spring
中,注解@
Controller
去修饰一个类时,默认这个类是单例。可是WEB容器为了性能,必然是多线程的去处理HTTP请求,多线程的HTTP请求通过WEB容器转化为servlet请求,接着由
Spring
的DispatcherServlet分发到对应的
Controller
处理类。因此在单例的
Controller
类中,若是存在
全局
变量
,必然会存在线程安全
问题
。安全 下面将示范多种经常
使用
写法,有些不会引发
Spring
Controller
全局
变量
引起的
问题
一直以来都是方法之间进行参数的传递,对参数进行各种修改然后返回这样没有任何的
问题
,直到昨天遇到了我的同事写的代码,项目
使用
的是
spring
cloud全家桶,他在代码中编写如下; 接口看起来没什么
问题
,入参正常,返回一个集合,声明了一个
全局
变量
List集合matchInvoiceList用来进行接收某些方法之间的数据,并且进行对数据的操作,但是这样有两个非常要命的
问题
;
问题
: 1.
spring
是单例模式,并发的场景下,
全局
变量
会有线程安全的
问题
; 2.会出现第二次访问这个接口的时候,集合并没有重新实例化,
Spring
Controller
中
全局
变量
引起的线程安全
问题
在
Spring
中,注解@
Controller
去修饰一个类时,默认这个类是单例。但是WEB容器为了性能,必然是多线程的去处理HTTP请求,多线程的HTTP请求经过WEB容器转化为servlet请求,接着由
Spring
的DispatcherServlet分发到对应的
Controller
处理类。所以在单例的
Controller
类中,如果存在
全局
变量
,必然会存在线程安全
问题
。 下面将示范多种常用写法,有...
spring
MVC的
Controller
使用
全局
变量
使用
Spring
MVC的时候,如果想要在
Controller
中定义一个
全局
变量
Spring
中采用
全局
变量
并发
问题
解决
由于系统采用
spring
mvc框架,
spring
mvc核心控制器DispatcherServlet 默认为每个
controller
生成单一实例来处理所有用户请求,所以在这个单一实例的
controller
中,它的XXXService也是一个实例处理所有请求, 这样XXXService的成员
变量
就被所有请求共享。这样就会出现并发请求时
变量
内容被篡改的
问题
。 那么出现这种
问题
如何解决呢? 第一种方式:...
Web 开发
81,094
社区成员
341,711
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章