答案
controller默认是单例,不要使用非静态成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。
解决方案
- 不要在controller中定义成员变量
- 万一必须要定义非静态成员变量时候,则通过@Scope(“prototype”),将其设置为多例
- 在controller中使用ThreadLocal变量
补充
spring bean 作用域有5个
- singleton
- prototype
- request
- session
- global session
转载:https://mp.weixin.qq.com/s/PNmlpv786kgk5Pyhr5XSsw