SpringMVC 多线程并发

SpringMVC的Controller默认是单例的,我现在由一个最大的疑问就是多线程并发的
时候,我们如何保证的数据安全性呢。由于Controller默认是单例的,Controller中的
方法也是单例的,我们如何保证一个user不会被另外一个User覆盖呢???求大神帮忙了。控制器
就像上面这个保存用户的操作,两个请求同时过来,一个user会不会被另外一个user覆盖呢???我百度说,只要不在Controller定义属性就不会安全问题啊????
来个大神帮忙理理思路啊。

3个回答

你这个方法是线程安全的,不会有问题。
一个user不会被另外一个user覆盖。因为:2个请求同时过来的时候,每个请求都会new一个user对象,他们各自用自己user对象,互相不受干扰。

liruidoudou
李瑞豆豆 谢了,主要是我对单例的方法理解不对,把它看成属性了。
接近 5 年之前 回复
zhang9494xz
zhang9494xz 回复liruidoudou: 如果不是很明白,可以加我qq:284600135。我会帮你解释清楚
接近 5 年之前 回复
zhang9494xz
zhang9494xz 回复liruidoudou: Controller是单例的,方法没有单例一说,只有对象可以说是单例的。因为user对象不是单例的,所以你可以创建多个不同的user对象,调用这个方法。你自己可以写一个单例的类,然后写一个方法。看能否传不同的对象过去
接近 5 年之前 回复
liruidoudou
李瑞豆豆 麻烦理解下单例行吗?单例就表示这个方法的对象一直不变的啊。只能有一个user。
接近 5 年之前 回复

外部提供线程的同步:
可以通过关键字
synchronizd (obj){// obj 是所对象,只有获得 锁对象 的线程才会进入这个代码段 ,但是要注意的是确保所对象的唯一
// code
}

对象new在方法里就可以了!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐