DAO(Repository),Service,Controller層之間的相互關係

  • DAO層:DAO層主要是作數據持久層的工做,負責與數據庫進行聯絡的一些任務都封裝在此,DAO層的設計首先是設計DAO的接口,而後在Spring的配置文件中定義此接口的實現類,而後就可在模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪一個類,顯得結構很是清晰,DAO層的數據源配置,以及有關數據庫鏈接的參數都在Spring的配置文件中進行配置。                                                                
  • Service層:Service層主要負責業務模塊的邏輯應用設計。一樣是首先設計接口,再設計其實現的類,接着再Spring的配置文件中配置其實現的關聯。這樣咱們就能夠在應用中調用Service接口來進行業務處理。Service層的業務實現,具體要調用到已定義的DAO層的接口,封裝Service層的業務邏輯有利於通用的業務邏輯的獨立性和重複利用性,程序顯得很是簡潔。                                                                                                         
  • Controller層:Controller層負責具體的業務模塊流程的控制,在此層裏面要調用Serice層的接口來控制業務流程,控制的配置也一樣是在Spring的配置文件裏面進行,針對具體的業務流程,會有不一樣的控制器,咱們具體的設計過程當中能夠將流程進行抽象概括,設計出能夠重複利用的子單元流程模塊,這樣不只使程序結構變得清晰,也大大減小了代碼量。                                                                                                                         
  • View層 此層與控制層結合比較緊密,須要兩者結合起來協同工發。View層主要負責前臺jsp頁面的表示,                                                          
  • DAO層,Service層這兩個層次均可以單獨開發,互相的耦合度很低,徹底能夠獨立進行,這樣的一種模式在開發大項目的過程當中尤爲有優點,Controller,View層由於耦合度比較高,於是要結合在一塊兒開發,可是也能夠看做一個總體獨立於前兩個層進行開發。這樣,在層與層以前咱們只須要知道接口的定義,調用接口便可完成所須要的邏輯單元應用,一切顯得很是清晰簡單。                                                                           
  • DAO設計的整體規劃須要和設計的表,和實現類之間一一對應。                                                                                                                      
  • DAO層所定義的接口裏的方法都大同小異,這是由咱們在DAO層對數據庫訪問的操做來決定的,對數據庫的操做,咱們基本要用到的就是新增,更新,刪除,查詢等方法。於是DAO層裏面基本上都應該要涵蓋這些方法對應的操做。除此以外,能夠定義一些自定義的特殊的對數據庫訪問的方法。                                                                                                                                                                                                                   
  • Service邏輯層設計     
  • Service層是創建在DAO層之上的,創建了DAO層後才能夠創建Service層,而Service層又是在Controller層之下的,於是Service層應該既調用DAO層的接口,又要提供接口給Controller層的類來進行調用,它恰好處於一箇中間層的位置。每一個模型都有一個Service接口,每一個接口分別封裝各自的業務處理方法。                                                                                                                                                                         
  • 在DAO層定義的一些方法,在Service層並無使用,那爲何還要在DAO層進行定義呢?這是由咱們定義的需求邏輯所決定的。DAO層的操做 通過抽象後基本上都是通用的,於是咱們在定義DAO層的時候能夠將相關的方法定義完畢,這樣的好處是在對Service進行擴展的時候不須要再對DAO層進行修改,提升了程序的可擴展性。  

本文參考自:https://blog.csdn.net/u010786902/article/details/50948297 數據庫

相關文章
相關標籤/搜索