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