从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

原文地址:https://www.cnblogs.com/xcl666/p/13110635.html