2010-08-24 37 views
1

在我正在使用的project中,有一個UserDetailServiceImpl類,它執行所有與用戶相關的數據庫查找。推薦使用UserDetailServiceImpl替代非用戶相關的數據庫查找?

問題是,我已經陷入了與非用戶相關的數據庫查找的壞習慣,並使用UserDetailServiceImpl類作爲默認查找服務,以避免直接在控制器操作方法中執行數據庫查找。這樣做的好處是我不必爲每個模型創建一個單獨的查找服務 - 這看起來很愚蠢和多餘。但是有沒有更爲標準的數據庫查找方法,我應該考慮避免激怒春天的神?

回答

1

我不喜歡使用服務只是爲了包裝數據庫查找,最終得到了控制器中的所有業務邏輯。我會組織我的服務,以便每種類型的用戶都有一個。所以如果我有客戶和數據輸入人員和管理員,我會做一個customerService和一個dataEntryService和一個adminService。每種服務都會暴露這種客戶需要的方法。業務邏輯不應該存在於控制器中,它嚴格關注從url和請求和會話獲得輸入,在某些服務上調用方法(傳入這些輸入),然後將服務調用的結果並將其放在哪裏該頁面可以顯示它。

+0

好吧,假設您需要運行報告來統計客戶羣發出的訂單。您是否也會在「客戶服務」中查找這些報告,即使這些報告不是針對個人客戶的?或者你會創建一個單獨的「報告服務」來完成這些查詢,並讓「客戶服務」專注於針對個人客戶的查詢? – 2010-08-24 16:49:41

+0

@克里斯柯林斯:我會按照誰在做什麼來組織它,而不是它是誰,所以它將進入哪個服務將取決於誰在生成報告。 '客戶服務'將專注於提供個人客戶可以做的事情。 – 2010-08-24 17:12:30

相關問題