1. DAO層:
主要任務:做數據持久層的工作,負責與數據庫進行聯絡的一些任務都封裝在此。
DAO層的設計:首先是設計DAO層的接口,然后再Spring的配置文件中定義此接口的實現類,然后就可以在模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪一個,顯得結構非常清晰。DAO設計的總體規划需要和設計的表,和實現類之間一一對應。
DAO層所定義的接口里的方法,主要是增添改查,以及一些自定義的特殊的對數據庫訪問的方法。
配置:DAO層的數據源配置,以及有關數據庫連接的參數都在Spring的配置文件中進行配置。
2. Service層
主要任務:負責業務模塊的邏輯應用設計
Service層的設計:首先設計接口,再設計實現的類,接着在Spring的配置文件中配置起實現的關聯。
優點:封裝Service層的業務邏輯有利於通用的業務邏輯的獨立性和重復利用性,程序顯得非常簡潔。
3. Controller層
主要任務:負責具體的業務模塊流程的控制,在此層里要調用Service層的接口來控制業務流程。
配置:控制的配置也同樣在Spring的配置文件中。
具體實現:針對具體的業務流程,會有不同的控制器,我們具體的設計過程中可以將流程進行抽象歸納,設計出可以重復利用的子單元流程模塊,這樣不僅使得成句結構變得清晰,也大大減少了代碼量。
4. View層
主要任務:View層與Controller層接口緊密,需要系統開發。View層主要負責前台JSP頁面的表示。
概述而言:DAO層和Service層可以單獨開發,互相的耦合度很低,可以完全獨立進行,這樣的一種模式在開發大項目中尤其有有事。Controller和View層耦合度較高,因此要結合在一起開發,但是也可以看做一個整體獨立於前兩個層進行開發。這樣,在層與層之間,我們只需要接口的定義,調用接口即可完成所需要的邏輯單元應用。
Service層是建立在DAO層之上的,建立了DAO層后才可以建立Service層,而Service層又在Controller層之下的,因而Service層應該既調用DAO層的接口,又要提供接口給Controller層的類來進行調用,它剛好處於一個中間層的位置。每個模型都有一個Service接口,每個接口分別封裝各自的業務處理方法。
在DAO層定義的一些方法,在Service層並沒有使用,那為什么還要在DAO層進行定義呢?這是由我們定義的需求邏輯所決定的。DAO層的操作 經過抽象后基本上都是通用的,因而我們在定義DAO層的時候可以將相關的方法定義完畢,這樣的好處是在對Service進行擴展的時候不需要再對DAO層進行修改,提高了程序的可擴展性。