SpringBoot项目中在controller中定义非静态成员变量,存在线程安全隐患
Spring MVC的Controller默认使用单例,因为:
1、性能好
2、没有必要用多例
所以:
1、在controller中定义成员变量,并且对成员变量存在写操作就会存在线程安全问题。
2、如果必须要定义一个非静态成员变量时候,则通过注解@Scope("prototype"),将其设置为多例模式。或者仍然使用默认单例方式,对于要共享对象属性,可以用ThreadLocal保护。
转载:https://blog.csdn.net/simon47/article/details/81739419

浙公网安备 33010602011771号