1.SpringMVC流程
-
用户发起请求时,第一步经过前端控制器,
-
但是前端控制器 只负责请求的转发和响应.不做任何业务处理.将请求转发给处理器映射器.
-
处理器映射器接收到前端控制器的请求之后,查询自己维护的服务列表信息.
如果服务列表中没有这个URL的key. 该程序不能处理用户的请求,则返回特定数据,前端控制器接收之后响应用户404.
如果服务列表中有该URL key 则说明请求可以正常执行. 将该方法的对象返回给前端控制器. -
前端控制器将返回的方法进行接收,但是由于前端控制器只负责转发和响应,不能直接执行该方法.所以交给处理器适配器执行.
-
处理器适配器根据方法的类型(xml配置文件/注解/其他方法),处理器适配器在自己的处理器库中挑选一个最为合适的处理器去执行该方法. 当处理器执行该方法时标识业务开始. 将最终的处理的结果通过ModelAndView对象进行包裹,返回给前端控制器.
ModelAndView: Model: 代表服务器返回的业务数据 View: 服务器端返回的页面的名称 -
视图解析器 将View中的数据进行解析 拼接一个完整的页面路径 前缀/hello后缀
-
视图渲染: 将数据与页面进行绑定. 这样用户就可以在页面中看到具体的数据.
-
由于现在流行前后端分离. 所以SpringMVC省略了视图解析和视图渲染.只有前5步. 核心注解: @ResponseBody 省略6-7步
2. 重要的组件
- 前端控制器 :DispatcherServlet 实现请求的流转
- 处理器映射器:实现了请求路径与方法之间的映射.
- 处理器适配器 : 处理器的管理器 内部有N个处理器. 针对不同的用户请求调用不同的处理器完成任务.
- 视图解析器 :实现页面路径的拼接
- 视图渲染::将数据与页面进行绑定