我有設計問題時,實現1簡單的Web應用程序。 我使用struts2 web控制器,spring的IOC和Hibernate作爲持久層。如何設計Web應用程序的圖層體系結構?
因爲這個Web應用程序在乞討時非常簡單。所以我只有2層: 1用於訪問數據庫的DAO層。幾乎每個表都有相關的DAO。 2操作層。用戶struts2。 我很滿意這個架構,因爲可以快速實現我的web應用程序。 隨着項目變大,我發現動作層變得龐大而複雜,而且很難重複使用。 我嘗試創建服務層,解決複雜的業務邏輯是好的,但我的應用程序仍然有很多簡單的邏輯。例如:加載1個對象,保存1個對象,並通過某些條件獲取集合並將其顯示到網頁。如果給每個簡單的DB訪問方法都有相應的服務方法。仍然花費很多努力。如何解決這個問題?我認爲,如果服務層存在,直接調用DAO層還是不適合我的應用程序設計。 這種小型Web應用程序有什麼好的解決方案嗎?
嗨mwhs,謝謝你給我這麼詳細的建議。我完全同意大中型網站項目的解決方案。但對於我們的小型Web應用程序。雖然服務器層可以幫助解決一些重複使用的問題,並使我的代碼看起來不錯。但是我仍然花了很多時間包裝這些簡單的DAO方法,甚至在服務器層中給出了有意義的名稱。順便說一句:我使用OpenSessionInViewFilter,因爲我的項目很小。 – Bensson
如果時間是你最糟糕的問題,我建議你嘗試生成一些代碼,而不是鍵入它。通常,模型驅動方法(MDA/MDSD)將爲您節省大量重複性任務。查看Acceleo項目。 – mwhs
或者嘗試使用Apache ISIS這樣的領域驅動框架之一,這會從您身上帶走很多工作。 – mwhs