@Service单例改为多例
Posted _Slience_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Service单例改为多例相关的知识,希望对你有一定的参考价值。
HOW
在@Service下加@Scope("prototype")
即可
WHY
在我的Service中有成员变量,用以控制查询参数,如果用默认的单例,上一次Service中的参数如果没有重置,将会带到下一次Service中,故需要单例。通常情况下,Service和Controller类似,默认是单例的,这样不会出现什么问题,因为大家控制逻辑的参数基本上是局部变量,但如果有成员变量了那么在并发的时候出现上次参数残留的情况。
关于为啥要在Service中加成员变量,主要是我像这样,以前我是这样查询的
userService.find(page,size,status);
每次都要完整写参就很麻烦,就改成了这样
userService.page(1).size(10).status(1).find();
这样如果我不需要status的查询条件就不调用status方法就好,但是参数要传递到find方法中就得通过成员变量。
以上是关于@Service单例改为多例的主要内容,如果未能解决你的问题,请参考以下文章