开发者社区 问答 正文

[@徐雷frank][¥20]Spring 如何保证 Controller 并发的安全?

Spring 如何保证 Controller 并发的安全?

展开
收起
aaa125 2018-11-23 15:09:39 3232 分享 版权
5 条回答
写回答
取消 提交回答
  • 无需参考,只需要关心成员变量以及数据安全即可

    2020-04-13 16:06:56
    赞同 展开评论
  • Spring中的Controller并没有保证并发情况下的安全,因为是单例模式,如果一个Controller有成员变量,多个请求对一个Controller成员变量的修改更新取值肯定会导致脏数据的产生。

    如果非要这么操作,可以考虑@Scope(“prototype/request/session)可以更换为其他模式

    2019-07-17 23:16:14
    赞同 展开评论
  • controller默认是单例的,在controller不用使用线程不安全的成员变量

    2019-07-17 23:16:14
    赞同 展开评论
  • Controller 本身是单例, 是否线程安全还得看你怎么用. 任何情况下,线程安全问题都是看你怎么处理共享对象,而不是看你是不是单例还是原型对象

    2019-07-17 23:16:14
    赞同 展开评论
  • 1.阿里云大学荣誉讲师, 2.MongoDB中文社区专家

    1、Spring MVC中默认的Controller是单例模式
    2、@Controller之前增加@Scope(“prototype”)可以更换为多例模式
    3、如果非要在单例模式下,共享变量,记得加锁解决线程安全问题

    2019-07-17 23:16:13
    赞同 展开评论