從SpringBoot談MVC


從SpringBootMVC

我們知道Spring Framework誕生至今已有十多年的歷史,其已經成為了Java應用程序開發框架的事實標准。作為Java企業版的輕量級代替品,Spring為企業級Java開發提供了一種相對簡單的方法。我們這里談的是springboot,那么springboot是什么呢?

Springboot是一個微服務框架,延續了spring框架的核心思想IOC和AOP,簡化了應用的開發和部署。Spring Boot是為了簡化Spring應用的創建、運行、調試、部署等而出現的,使用它可以做到專注於Spring應用的開發,而無需過多關注XML的配置。提供了一堆依賴打包,並已經按照使用習慣解決了依賴問題--->習慣大於約定。

 

 

 

從圖中可以看出SpringBoot是包含了Spring的核心(IOC)和(AOP);以及封裝了一些擴展。簡單的來說,Spring包含了SpringMVC,而SpringBoot又包含了Spring或者說是在Spring的基礎上做得一個擴展。

SpringMVC是屬於SpringWeb里面的一個功能模塊(SpringWebMVC)。專門用來開發SpringWeb項目的一種MVC模式的技術框架實現。其原理如下:

 

 

 

我們都知道傳統的MVC包含Model(模型)、VIew(視圖)、Controller(控制器),在SpringBoot中也是如此,下面來我開發的信息領域熱詞分析的目錄結構:

 

 

 如圖controller即為mvc的c,是控制器,Controller是SpringBoot里最基本的組件,他的作用是把用戶提交來的請求通過對URL的匹配,分配個不同的接收器,再進行處理,然后向用戶返回結果。他的重點就在於如何從HTTP請求中獲得信息,提取參數,並分發給不同的處理服務。Entity目錄對應mvc中的model,即數據庫實體層,也被稱為entity層,pojo層,存放的是實體類,屬性值與數據庫中的屬性值保持一致。 實現set和get方法。

一般數據庫一張表對應一個實體類,類屬性同表字段一一對應。圖中的templates目錄對應mvc中的view,即展示層。

了解完spirngboot中的mvc后,我們結合具體代碼來看看使用springboot中的mvc開發思想有多方便。首先我們有這樣一個數據庫,數據庫中有hotwords這張表,其內容如下:

 

在代碼中,在dao目錄下的daoMapper類中,我們寫如下的代碼,如下圖,

 

這段代碼的作用是從hotwords表中獲得name和wordexplain字段。並且對應的類型是entity中的hotwords類,也即對應mvc中的model,hotwords類內容如下:

 

 

 

其中的字段名稱都要與數據庫對應,這也是非常需要注意的一點。這樣,我們就暫時從數據庫中拿到數據了,接下來需要業務層,也就是service層調用dao層,也就是持久層中的函數。Service層對應代碼如下:

 

 

 

接着就是控制器層,就是mvc模式中的c需要做的事,負責從請求中獲得參數和信息,進行處理,接着把數據傳遞過去。我們這里模仿的就是假定有一個請求需要獲得hotwords數據表中的信息,那么controller就負責得到該數據並傳遞回去。Controller層對應代碼如下:

 

 

 

Controller通過調用服務層的方法來實現得到相關的數據。最后交由前端。這里說的前端就是mvc模式中的v,負責界面顯示。這里對應的前端代碼如下:

 

 

 

  通過springboot中的地址映射到controller的相應方法,從而得到數據。這樣一套基本的mvc模式就出來了。通過這個案例分析,我們可以很清楚的看到,mvc模式給我們帶來的好處,就是結構清楚,各司其職,互不干擾。三個層各施其職,所以如果一旦哪一層的需求發生了變化,就只需要更改相應的層中的代碼而不會影響到其它層中的代碼。在開發中也可以更好的實現分工開發。分層后更有利於組件的重用。如控制層可獨立成一個能用的組件,視圖層也可做成通用的操作界面。Springboot的優勢也是簡化開發,相較於ssm和ssh,它省去了大量的配置操作,減少了很多工作量。

 

參考文章:https://zhuanlan.zhihu.com/p/63117304

https://www.cnblogs.com/lzb1991/p/6513470.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM