SpringBoot项目中在controller中定义非静态成员变量,存在线程安全隐患

Spring MVC的Controller默认使用单例,因为:

1、性能好

2、没有必要用多例

所以:

1、在controller中定义成员变量,并且对成员变量存在写操作就会存在线程安全问题。

2、如果必须要定义一个非静态成员变量时候,则通过注解@Scope("prototype"),将其设置为多例模式。或者仍然使用默认单例方式,对于要共享对象属性,可以用ThreadLocal保护。

转载:https://blog.csdn.net/simon47/article/details/81739419

posted @ 2020-12-23 10:43  dong_blog  阅读(1109)  评论(0)    收藏  举报