其他分享
首页 > 其他分享> > Spring的Controller是单例还是多例?怎么保证并发安全

Spring的Controller是单例还是多例?怎么保证并发安全

作者:互联网

答案

Controller默认是单例,不要使用非静态变量(成员变量),否则会发生逻辑混乱。正因为单例所以不是线程安全的

 解决方案

1、不要在Controller中定义成员变量

2、万一必须要定义一个非静态成员变量时候,则通过注解@Scope("prototype"),将其设置为多例

3、在Controller中使用ThreadLocal变量

补充

spring bean 有5个作用域

singleton,prototype,request,session,global session

 

 

 

转载:https://mp.weixin.qq.com/s/PNmlpv786kgk5Pyhr5XSsw

 

  

标签:变量,多例,Spring,Controller,session,单例,prototype
来源: https://www.cnblogs.com/yanjy/p/15662682.html