@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方法中就得通過成員變量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章