本文主要是介绍@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单例改为多例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!