2016-09-29 127 views
4

如果您有分層架構(DAO,服務,控制器),如何配置Guice?Guice配置/綁定最佳實踐

它應該配置在頂層(控制器)?或者我們應該在每一層配置?如果是這樣,何時如何把它們聯繫在一起?

如何測試?它應該如何? 謝謝。

+0

我個人根據功能進行配置,因爲在同一個地方使用整個功能效率更高。包是明確的,模塊更容易配置。這需要停止考慮「圖層」。例如,你有一個書包,你把你的實體'Book'放在那裏,以及'BookService','BookDao','BookController'。爲了把所有東西都綁定在一起,你也把'BookModule'放在那個包裏。所以要回答你的問題,我會重構基於特徵的佈局,然後在每個包中放置一個模塊。 –

回答

0

根據一般慣例, DAO是儘可能輕和存在提供一個連接到數據庫。

服務層是否提供邏輯來操作發送到DAO和客戶端的數據。

很多時候,這些將被捆綁在一起放入同一個模塊,偶爾會放入相同的代碼中,但您仍然會將它們視爲不同的邏輯實體。

所以你應該將需要的服務綁定到相應的Guice模塊並注入到控制器中,並且最好通過注入將DAO提供給服務實現層。

根據測試方法,如果您的服務沒有執行除邏輯之外的任何其他功能來處理髮送到DAO和客戶端的數據,則應在服務器端單獨測試每個DAO的功能。