写作于2019.5.02
更新于2019.8.16
更新:2019.9.2
概述:
是一种开发结构合理、能使前后端分离、流程控制逻辑、业务逻辑调用与展示逻辑分离,实现高内聚,低耦合的设计模式。
何为 M、V、C ?
M:数据实体模型(Model):
每一个类的成员变量字段对应数据库字段对应(对应的Entity、JavaBean),提供数据的CRUD操作,实现数据库的持久化。
V:视图(View):
视图层:客户端用户能直接看到的页面,主要负责视图的展示。视图层调用控制层(HTML、JSP等文件)。
C:控制 (Controller):
前端视图层的参数提交和页面的响应,都委托给前端处理器处理,在Spring MVC框架下,在Controller作为控制层,Controller响应URL请求并进行处理,根据映射对应关系,调用service层,service层的接口实现类(xxxserviceImpl)调用Dao层完成数据初始化工作。负责处理模型处理,处理完成后把模型数据返回给视图。(中间调度员Dispatcher)。
Spring MVC执行流程:
- 用户发送一个请求,前端控制器(DispactherServlet)接收到这个请求。
- 前端控制器获取其URL,根据URL调用对应的处理器映射器(HandlerMapping)。
- 前端控制器根据获取的Handler(Controller)调用对应的HandlerAdapter(Controller的实现层)。
- Handler处理完成后将返回一个ViewAndModel给前端控制器。
- ViewAndModel将由视图渲染器渲染成正式视图。
- 前端控制器通过Model解析出ViewAndModel中的数据,展现出完整的视图给用户。
Spring MVC 通过这三层实现前端数据提交到后台,经过Service层处理后并持久化到数据库的过程。
面向接口编程:表示层(View)调用控制层(Controller),控制层调用业务层(service,service包括接口和对应的impl实现类),业务层调用Dao层(数据库)实现数据持久化。
综上:这就是我一个刚入行的小白对Spring MVC分层的理解,欢迎大家指正,谢谢!
我写的这篇博客希望能帮到大家。