2015-10-06 61 views
3

我在設計使用彈簧的REST API,並且我有幾個有關設計的問題。我目前的項目由控制器,服務,模型和道士組成。有關設計的問題,請致電另一項服務的服務?

1)可以從其他服務調用服務嗎?或者更好地保持獨立於所有其他服務的服務?我認爲有時需要引用另一個服務。

2)模型/實體調用服務是否正確(例如在setter中)?我不這麼認爲。

3)模型/實體調用dao是否正確(例如在setter中)?我不這麼認爲。

回答

4

我會試着回答第一個問題。

1.是否可以撥打另一項服務的服務?或者更好地保持獨立於所有其他服務的服務?我認爲有時需要引用另一個服務。

我想你可以從另一個服務調用服務。在您的應用程序中,您可以使用一些泛型功能,例如findUserByEmail(String email)。這項服務可以: 檢查電子郵件是否有效(即使它是從前端完成的),搜索(調用DAO查找客戶),管理異常,它也可以做一些工作)。你知道這個服務可以從許多服務中調用。這對肉食Dont Repeat Yourself(DRY)原則非常有用,並避免重複代碼。

對於這兩個問題,你說得對。

2)模型/實體調用服務是否正確(例如在setter中)?我不這麼認爲。

3)模型/實體調用dao是否正確(例如在setter中)?我不這麼認爲。

在setter中調用dao或服務不是一個好習慣。如果你想設置對象屬性,你可以建立一個dao和服務,返回根據你的需要設置的對象。

我希望我的回答給你一些有用的信息

+0

感謝分享你的想法。我同意你的意見。 – prettyvoid