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

 

  

上一篇:SpringMVC


下一篇:egg 项目里编写基础的 GET 接口:使用 GET 请求参数获取