新项目偶尔出现,的错误,你中招了吗?

日期: 栏目:文章分享 浏览:575 评论:0

最近发现偶尔出现使用的新项目,同事反映访问同一个时经常出现类似错误

上次发现在用

如果@Scope("") 没有添加到@注解生成的扫描中,则生成的是单例。看

虽然发现了这个问题,但是由于报错现象很难重现,所以上次放弃了。

我今晚在测试中不小心遇到了这个错误,我在其中添加了@Scope("")Chrome访问网站失败:ERR_CONNECTION_CLOSED 错误,但仍然出现同样的错误。

我用下面的语句打印了这个类的地址,发现每次打印的地址都不一样,证明每次请求都是重新创建的

.out.(":"+this.().()

+"@"+.(this.()));

这时候注意到用了@,所以我也把地址打印出来了,每次访问时找到的地址都是一样的。也就是说虽然有多个实例,但是里面的都是单例的,所以每次分配一个新的请求结束后关闭连接的方法就有问题了。

我的每一个都是通过传入的,其他数据库方法都用这个。

当两个请求同时请求同一个时,如果第一个开始创建一个,执行速度慢,另一个开始后,也申请一个新的。由于是单例,第一个将被覆盖。如果第二个先完成然后关闭连接Chrome访问网站失败:ERR_CONNECTION_CLOSED 错误,第一个会出现“”错误,导致未关闭(第一个申请)。

解决方案

1.将@Scope("") 添加到两个总和中,这样总和就是多种情况。

2. 不带方法,每个方法都从参数中获取。

标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看