开发者社区> 问答> 正文

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

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

展开
收起
aaa125 2018-11-23 15:09:39 3157 0
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.阿里云大学讲师,主讲《微服务Spring Cloud设计与开发实战》《MongoDB高级实战》等课程 2.MongoDB中文社区专家 3.《MongoDB实战》第2版译者 5.吉林大学计算机科学学士、上海交通大学硕士

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

    2019-07-17 23:16:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载