什么是MVC?
MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。
Spring MVC 时代
随着 Spring 轻量级开发框架的流行,Spring 生态圈出现了 Spring MVC 框架, Spring MVC 是当前最优秀的 MVC 框架。相比于 Struts2 , Spring MVC 使用更加简单和方便,开发效率更高,并且 Spring MVC 运行速度更快。
MVC 是一种设计模式,Spring MVC 是一款很优秀的 MVC 框架。Spring MVC 可以帮助我们进行更简洁的 Web 层的开发,并且它天生与 Spring 框架集成。Spring MVC 下我们一般把后端项目分为 Service 层(处理业务)、Dao 层(数据库操作)、Entity 层(实体类)、Controller 层(控制层,返回数据给前台页面)。
Spring MVC 的核心组件有哪些?
记住了下面这些组件,也就记住了 SpringMVC 的工作原理。
DispatcherServlet
:核心的中央处理器,负责接收请求、分发,并给予客户端响应。HandlerMapping
:处理器映射器,根据 URL 去匹配查找能处理的Handler
,并会将请求涉及到的拦截器和Handler
一起封装。HandlerAdapter
:处理器适配器,根据HandlerMapping
找到的Handler
,适配执行对应的Handler
;Handler
:请求处理器,处理实际请求的处理器。ViewResolver
:视图解析器,根据Handler
返回的逻辑视图 / 视图,解析并渲染真正的视图,并传递给DispatcherServlet
响应客户端
SpringMVC 工作原理了解吗?
Spring MVC 原理如下图所示:
流程说明(重要):
- ①用户发送请求至会先进入
DispatcherServlet
控制器进行相应处理。 - ②
DispatcherServlet
会调用HandlerMapping
根据请求路径查找Handler
。 - ③处理器映射器找到具体的处理器后,生成
Handler
对象及Handler
拦截器(如果有则生成),然后返回给DispatcherServlet
。 - ④
DispatcherServlet
紧接着会调用HandlerAdapter
,准备执行Handler
。 - ⑤
HandlerAdapter
底层会利用反射机制,对前面生成的Handler
对象进行执行。 - ⑥执行完对应的
Java
方法后,HandlerAdapter
会得到一个ModelAndView
对象。 - ⑦
HandlerAdapter
将ModelAndView
再返回给DispatcherServlet
控制器。 - ⑧
DisPatcherServlet
再调用ViewReslover
,并将ModelAndView
传递给它。 - ⑨
ViewReslover
视图解析器开始解析ModelAndView
并返回解析出的View
视图。 - ⑩解析出
View
视图后,对视图进行数据渲染(即将模型数据填充至视图中)。 - ⑪
DispatcherServlet
最终将渲染好的View
视图响应给用户浏览器。