主要任務:作數據持久層的工做,負責與數據庫進行聯絡的一些任務都封裝在此。數據庫
DAO層的設計:首先是設計DAO層的接口,而後再Spring的配置文件中定義此接口的實現類,而後就能夠在模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪個,顯得結構很是清晰。DAO設計的整體規劃須要和設計的表,和實現類之間一一對應。spa
DAO層所定義的接口裏的方法,主要是增添改查,以及一些自定義的特殊的對數據庫訪問的方法。設計
配置:DAO層的數據源配置,以及有關數據庫鏈接的參數都在Spring的配置文件中進行配置。接口
主要任務:負責業務模塊的邏輯應用設計開發
Service層的設計:首先設計接口,再設計實現的類,接着在Spring的配置文件中配置起實現的關聯。擴展
優勢:封裝Service層的業務邏輯有利於通用的業務邏輯的獨立性和重複利用性,程序顯得很是簡潔。配置
主要任務:負責具體的業務模塊流程的控制,在此層裏要調用Service層的接口來控制業務流程。程序
配置:控制的配置也一樣在Spring的配置文件中。方法
具體實現:針對具體的業務流程,會有不一樣的控制器,咱們具體的設計過程當中能夠將流程進行抽象概括,設計出能夠重複利用的子單元流程模塊,這樣不只使得成句結構變得清晰,也大大減小了代碼量。配置文件
主要任務: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層進行修改,提升了程序的可擴展性。