天天看點

MVC模式&DAO,Service,Controller、View層級了解MVC模式DAO層,Service層,Controller層、View層SSM架構中Dao層,Mapper層,controller層,service層,model層,entity層Springboot的entity,dao,controller,service層級了解

MVC模式

你在浏覽器輸入好使用者名和密碼之後,點選登入,浏覽器會給伺服器發個請求。

伺服器接到請求之後,按照預先設定的路由規則把參數傳給相應的controller。

controller判斷參數合法性之後,從model那邊拿資料。

model通過orm從資料庫裡面把資料取出來、封裝成對象給controller。

之後,controller根據結果進行判斷,然後加載相應的view(模闆)。

最後controller把模闆渲染出來的html列印到網絡流中。

作者:飛龍

連結:https://www.zhihu.com/question/31397745/answer/52790560

來源:知乎

總統在舞台上演講,總統口渴了需要水;秘書負責傳喚幕後人員送上水來;背景人員負責送水。總統以及舞台是view,秘書是controller,背景人員是model。總統的要求都是由model實際來完成的,controller隻是個傳話的。世界中很多實際場景都是按這個步驟來運作的,隻是我們沒有發覺。

作者:bobo

連結:https://www.zhihu.com/question/31397745/answer/88755021

來源:知乎

DAO層,Service層,Controller層、View層

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層進行修改,提高了程式的可擴充性。  

--------------------- 

作者:zdwzzu2006 

來源:CSDN 

原文:https://blog.csdn.net/zdwzzu2006/article/details/6053006 

SSM架構中Dao層,Mapper層,controller層,service層,model層,entity層

SSM是sping+springMVC+mybatis內建的架構。

MVC即model view controller。

model層=entity層。存放我們的實體類,與資料庫中的屬性值基本保持一緻。

service層。存放業務邏輯處理,也是一些關于資料庫處理的操作,但不是直接和資料庫打交道,他有接口還有接口的實作方法,在接口的實作方法中需要導入mapper層,mapper層是直接跟資料庫打交道的,他也是個接口,隻有方法名字,具體實作在mapper.xml檔案裡,service是供我們使用的方法。

mapper層=dao層,現在用mybatis逆向工程生成的mapper層,其實就是dao層。對資料庫進行資料持久化操作,他的方法語句是直接針對資料庫操作的,而service層是針對我們controller,也就是針對我們使用者。service的impl是把mapper和service進行整合的檔案。

(多說一句,資料持久化操作就是指,把資料放到持久化的媒體中,同時提供增删改查操作,比如資料通過hibernate插入到資料庫中。)

controller層。控制器,導入service層,因為service中的方法是我們使用到的,controller通過接收前端傳過來的參數進行業務操作,在傳回一個指定的路徑或者資料表。

在實際開發中的Service層可能被處理為實體Service層,而不是接口,業務邏輯直接寫在Service(Class,不是Interface)層中,Controller直接調用Service,Service調用Mapper。

當然了,Service之間也是可以互相調用!

--------------------- 

作者:安逸的程式猿 

來源:CSDN 

原文:https://blog.csdn.net/ma726518972/article/details/80262948 

Springboot的entity,dao,controller,service層級了解

1.Dao層:持久層,主要與資料庫互動

DAO層首先會建立Dao接口,接着就可以在配置檔案中定義該接口的實作類;接着就可以在子產品中調用Dao的接口進行資料業務的處理,而不用關注此接口的具體實作類是哪一個類,Dao層的資料源和資料庫連接配接的參數都是在配置檔案中進行配置的。

2.Entity層:實體層,資料庫在項目中的類

主要用于定義與資料庫對象應的屬性,提供get/set方法,tostring方法,有參無參構造函數。

3.Service層:業務層 控制業務

業務子產品的邏輯應用設計,和DAO層一樣都是先設計接口,再建立要實作的類,然後在配置檔案中進行配置其實作的關聯。接下來就可以在service層調用接口進行業務邏輯應用的處理。

好處:封裝Service層的業務邏輯有利于業務邏輯的獨立性和重複利用性。

4.Controller層:控制層 控制業務邏輯

具體的業務子產品流程的控制,controller層主要調用Service層裡面的接口控制具體的業務流程,控制的配置也要在配置檔案中進行。

5.View層

此層與控制層結合比較緊密,需要二者結合起來協同工發。View層主要負責前台jsp頁面的表示。

Controller和Service的差別是:Controller負責具體的業務子產品流程的控制;Service層負責業務子產品的邏輯應用設計

總結:具體的一個項目中有:controller層調用了Service層的方法,Service層調用Dao層的方法,其中調用的參數是使用Entity層進行傳遞的。

參考:https://www.cnblogs.com/almm/p/10802419.html