關(guān)于MVC設(shè)計模式及流程解析
MVC設(shè)計模式
概述
是一種開發(fā)結(jié)構(gòu)合理、能使前后端分離、流程控制邏輯、業(yè)務(wù)邏輯調(diào)用與展示邏輯分離,實現(xiàn)高內(nèi)聚,低耦合的設(shè)計模式。
M:數(shù)據(jù)實體模型(Model或Entity):
- 每一個類的成員變量字段對應(yīng)數(shù)據(jù)庫字段對應(yīng)(對應(yīng)的Entity、JavaBean),提供數(shù)據(jù)的CRUD操作,實現(xiàn)數(shù)據(jù)庫的持久化。
V:視圖(View):
- 視圖層:客戶端用戶能直接看到的頁面,主要負(fù)責(zé)視圖的展示。視圖層調(diào)用控制層(HTML、JSP等文件)。
C:控制 (Controller):
- 前端視圖層的參數(shù)提交和頁面的響應(yīng),都委托給前端處理器處理,在Spring MVC框架下,在Controller作為控制層,Controller響應(yīng)URL請求并進(jìn)行處理,根據(jù)映射對應(yīng)關(guān)系,調(diào)用service層,service層的接口實現(xiàn)類(xxxserviceImpl)調(diào)用Dao層完成數(shù)據(jù)初始化工作。
- 負(fù)責(zé)處理模型處理,處理完成后把模型數(shù)據(jù)返回給視圖。(中間調(diào)度員Dispatcher)。
SSM框架項目搭建流程
1.數(shù)據(jù)庫準(zhǔn)備:創(chuàng)建數(shù)據(jù)庫,構(gòu)思需求的數(shù)據(jù)類型
- 準(zhǔn)備實體類,與數(shù)據(jù)庫一一對應(yīng)
- (com.it.entity)
2.構(gòu)建Dao層
- (com.it.dao)
- 構(gòu)建接口:名稱叫XXXDao
- Dao只做單一的邏輯:對數(shù)據(jù)庫CRUD功能接口定義。
- 并且寫get/set/return方法、構(gòu)造方法(方便輸出)。
3.Dao層接口實現(xiàn)
- 在使用MyBatis時,MyBatis自動實現(xiàn),可不必寫dao層的實現(xiàn)類,可以直接在Mapper.xml文件里寫對應(yīng)的SQL語句來完成對數(shù)據(jù)庫的持久化操作。
業(yè)務(wù)層:
4. 定義service
- (com.it.xxxservice)
- 在xxxService類里定義服務(wù)接口,根據(jù)需求定義業(yè)務(wù)功能接口,在每一個接口上方可寫注釋來明確該接口的功能。
- 在Service包下建立Impl文件夾,放Service層定義的接口功能實現(xiàn)類。
小結(jié)一下:
面向接口編程:當(dāng)用戶在頁面(View層)向服務(wù)器發(fā)送一個請求時,請求由控制層(Controller)處理,Controller負(fù)責(zé)攔截和調(diào)用業(yè)務(wù)層相關(guān)邏輯(service接口對應(yīng)的impl實現(xiàn)類),業(yè)務(wù)層調(diào)用Dao層對數(shù)據(jù)庫進(jìn)行操作,從而實現(xiàn)數(shù)據(jù)的持久化,最終前端處理器Controller返回處理過后的頁面顯示給用戶。
(圖片來自網(wǎng)絡(luò))
這是一個剛?cè)胄械男“讓VC設(shè)計模式的理解,寫博客的目的就是能將一些自己的理解記錄下來,或許我的博客還能幫助到大家,當(dāng)然,我也迫切希望經(jīng)驗豐富的前輩們能對我的理解給你們寶貴的建議,謝謝!
MVC模式的各個步驟
M:Model模型,實體類和業(yè)務(wù)和dao
V:view 視圖 JSP
C:Controller 控制器,servlet
作用:視圖和邏輯分離
流程是
1. 先寫實體類
2. 數(shù)據(jù)訪問控制層
3. 業(yè)務(wù)邏輯
4. 控制器
5. 視圖
如圖:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java旋轉(zhuǎn)數(shù)組中最小數(shù)字具體實現(xiàn)(圖文詳解版)
這篇文章主要給大家介紹了關(guān)于Java旋轉(zhuǎn)數(shù)組中最小數(shù)字具體實現(xiàn)的相關(guān)資料,旋轉(zhuǎn)數(shù)組,說明數(shù)據(jù)不變,只是改變位置,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08Java編程實現(xiàn)多線程TCP服務(wù)器完整實例
這篇文章主要介紹了Java編程實現(xiàn)多線程TCP服務(wù)器完整實例,具有一定借鑒價值,需要的朋友可以參考下2018-01-01Spring AOP在web應(yīng)用中的使用方法實例
這篇文章主要給大家介紹了關(guān)于Spring AOP在web應(yīng)用中的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring AOP具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12mybatis配置mapper-locations位置的三種方式小結(jié)
這篇文章主要給大家介紹了關(guān)于mybatis配置mapper-locations位置的三種方式,Mybatis-Plus的初衷是為了簡化開發(fā),而不建議開發(fā)者自己寫SQL語句的,但是有時客戶需求比較復(fù)雜,需要的朋友可以參考下2023-08-08Java常見基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了Java常見數(shù)據(jù)結(jié)構(gòu)面試題,帶有答案及解釋,希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望可以幫助到你2021-07-07