最近在修改同事代码时,经常遇到莫名的问题,比如查询结果集中出现上一次请求中的脏数据,我就排查啊,总觉得是代码哪个地方写的不严谨,后来想到了,可能是action对象成单例造成的。看了下spring配置文件,果然,全部没有加 scope="prototype"。加上后,问题顺利解决。
ps:不写scope="prototype",默认就是单例,必然会造成脏读取数据,因为不同的线程抢相同的ACTION实例;
prototype的话, 就是多例, spring会为每一个请求 实例化一个新的action对象;这样 每一个请求都用的是自己的action实例, 就没有共享的问题了
scope="prototype"切记啊。
原文地址:https://www.cnblogs.com/yuyu666/p/12661673.html
时间: 2024-10-12 11:13:34