这两天看到一个bug,记录下。
在获取任务的时候,本来任务不是由这个柜员领取的,但是最后跑到那个柜员下面去了。
查看日志,发现两个任务的领取操作很近,日志是穿插着打的。
后来经人指点,说spring初始化bean默认是单实例模式,也就是说这个类的私有属性被后来的调用给改掉了。导致在领取任务的时候 第一个调用的领任务的类的私有变量就变为第二次调用的任务的。所以领串了。这样第二个调用也会随之报错。
这个bug解决的话两个方法。
1:去掉这个私有变量,直接在方法里面初始化。
2.修改spring 初始化这个类,不要使用单例模式。
<bean id="user" class="..." singleton="false"/> 如果不写,就是默认值true。
时间: 2024-10-14 15:01:00