2012-03-18 103 views
3

我是一個java web應用程序開發人員。java web應用程序中的圖層

而我發現我與服務器端的圖層耦合。

我不是指MVC(模型/視圖/控制),而是道/服務層。

Dao圖層用於連接數據庫。

爲什麼服務層?

由於我們現在使用spring mvc框架,我曾經在控件中處理登錄,包括調用dao來獲取數據。服務層是否必要?

+0

請參閱http://en.wikipedia.org/wiki/Multitier_architecture – MJM 2012-03-18 13:10:13

+1

http://stackoverflow.com/questions/698220/mvc-vs-n-tier-architecture – MJM 2012-03-18 13:11:29

回答

2

服務層知道事務。他們映射到用例和工作單元。即使您的Web用戶界面消失,他們也有機會變得有用,因爲它們是面向服務架構的基礎。

我會說,唯一一次我放棄一層將是隻讀訪問數據。在這種情況下,我更有可能處置DAO而不是服務。

1

DAO層 - 只處理DB的東西,基本的CRUD和其他一些發現查詢,它處理DB交易

服務層 - 實際上取決於DAO層上進行業務特定的邏輯,它可以處理業務交易

來區分它們的好處是,你可以與任何其他前端插入服務層,還你將有機會插上/更改DAO層如果原始存儲更改

請參見

3

有幾個原因,服務層,但對我來說有幾個主要優點:

  1. 允許在服務方法的聲明式事務控制,這可能包括彙總非事務性DAO調用。
  2. 清除業務層邏輯與單純數據庫訪問的分離。
  3. 通過將上述內容封裝到易於替換的塊中,可以在更高級別進行更簡單的測試。

是否需要服務層?當然不是 - 但技術上沒有層是必要的;一切都可以包裝在一個JSP頁面中。這是一個粒度,控制和關注點分離的問題。

1

服務層通常用作集成層層。它可以防止DAO圖層的「混亂」,並且與其無關。例如:

  • 安全
  • 業務邏輯和驗證
  • 外部系統集成

你的服務層也是在那裏,你將實現系統的各種「意見」,混合和匹配低層創建新功能。