博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Springmvc+mybatis+restful+bootstrap框架整合
阅读量:6706 次
发布时间:2019-06-25

本文共 1103 字,大约阅读时间需要 3 分钟。

Spring MVC工作流程图

图一

图二

Spring工作流程描述

  1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
  2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;
  3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)
  4. 提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息

数据转换:对请求消息进行数据转换。如String转换成Integer、Double等

数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等

数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中

  1. Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;
  2. 根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;
  3. ViewResolver 结合Model和View,来渲染视图
  4. 将渲染结果返回给客户端。

Spring工作流程描述

为什么Spring只使用一个Servlet(DispatcherServlet)来处理所有请求?

详细见J2EE设计模式-前端控制模式

Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?

符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。

经典介绍:

源码结构

欢迎大家一起学习研究相关技术愿意了解框架技术或者源码的朋友直接加求求(企鹅):2042849237

转载地址:http://ujblo.baihongyu.com/

你可能感兴趣的文章
如何解决邮件内容乱码的问题
查看>>
centos出现-bash: /usr/bin/php: 没有那个文件或目录解决方法
查看>>
网页设计中黑体和宋体的使用
查看>>
[作业] 马哥2016全新Linux+Python高端运维班第八周作业
查看>>
mysql多实例配置
查看>>
OWA页面改密码提示成功,但登录不上
查看>>
优化WebLogic 服务器性能参数
查看>>
NOI2015程序自动分析【并查集+离散化】【做题报告】
查看>>
oracle拼接函数:将多个字段拼接在一行显示
查看>>
多重异常的时候要注意的一些问题
查看>>
float保留7位double保留15位之后的数字四舍五进
查看>>
union on
查看>>
videojs
查看>>
如何实现文件自动归类?
查看>>
出现报错: module build failed error couldn't find preset es2015 relative to directory
查看>>
PL/SQL 操作数据库常见脚本
查看>>
ZendStudio快捷键
查看>>
HttpClient 教程 (一)
查看>>
PHPExcel类导入Excel用法
查看>>
Linux 6.4 partprobe出现warning问题
查看>>