1. SpringMVC处理流程

2. SpringMVC架构

  2.1 框架结构

  2.2 框架流程

    1. 用户发送请求至前端控制器DispatcherServlet。

    2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。

    3. 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

    4. DispatcherServlet调用HandlerAdapter处理器适配器。

    5. HandlerAdapter经过适配调用具体的处理器(controller,也叫后端控制器)。

    6. Controller执行完成返回ModelAndView。

    7. HandlerAdapter将Controller返回的执行结果ModelAndView返回给DispatcherServlet。

    8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

    9. ViewReslover解析之后返回具体的view。

    10.  DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图jsp/freemaker..中)。

    11. DispatcherServlet响应用户。

    

    举个栗子!(不知道合不合适)

    1. 用户发送请求至前端控制器DispatcherServlet。  —— 奥巴马要OOXX本拉登。他不能自己干啊,于是把命令给秘书处。

    2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。  —— 秘书处也不能上手干啊,于是秘书处找到杀手中介!我要一个杀手!

    3. 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。  —— 杀手中介给秘书处推荐了一个杀手。

    4. DispatcherServlet调用HandlerAdapter处理器适配器。  —— 秘书处让交通局给杀手提供了途径:飞机,火车,汽车..你想怎么过去

    5. HandlerAdapter经过适配调用具体的处理器(controller,也叫后端控制器)。  ——杀手想了想,还是飞机快,于是坐着飞机找到了本拉登。

    6. Controller执行完成返回ModelAndView。  ——把本拉登宰了,拿到一个人头~ 咦惹~

    7. HandlerAdapter将Controller返回的执行结果ModelAndView返回给DispatcherServlet。  ——交通局就血淋淋的~ 交给了秘书处。

    8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器。  —— 秘书处一看,太可怕了,我们不能就这么给总统看啊。于是找到“美容院”

    9. ViewReslover解析之后返回具体的view。  ——经过一番包装过后,给回秘书处。

    10.  DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图jsp/freemaker..中)。  ——秘书处整理一番,放进盒子里面。

    11. DispatcherServlet响应用户。  —— 交给奥巴马。

  2.3 组件说明   

    以下组件通常使用框架提供实现:

    DispatcherServlet:前端控制器

      用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

    HandlerMapping:处理器映射器

      HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

    Handler:处理器

      Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。

      由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

    HandlAdapter:处理器适配器

      通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

    View Resolver:视图解析器

      View Resolver负责将处理结果生成View视图(JSP,freemarker),View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

    View:视图

      springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。

      一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

    需要用户开发的组件有handler(controller类)、view(jsp/freemarker velocity,thyeleaf)

 

3.常用注解

<mvc:annotation-driven /> 说明:

   是一种简写形式,可以让初学者快速成应用默认的配置方案,会默认注册 DefaultAnnotationHandleMapping以及AnnotionMethodHandleAdapter 这两个 Bean, 这两个 Bean ,前者对应类级别, 后者对应到方法级别;
  上面的 DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter 是 Spring 为 @Controller 分发请求所必需的。
 
annotation-driven 扫描指定包中类上的注解,常用的注解有:
 
@Controller 声明Action组件
@Service 声明Service组件 @Service("myMovieLister")
@Repository 声明Dao组件
@Component 泛指组件, 当不好归类时.
 
@RequestMapping("/menu") 请求映射
@Resource 用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName")
@Autowired 用于注入,(srping提供的) 默认按类型装配
@Transactional( rollbackFor={Exception.class}) 事务管理
@ResponseBody
@Scope("prototype") 设定bean的作用域

SpringMVC的工作流程、组件说明以及常用注解说明的更多相关文章

  1. RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍

    RDIFramework.NET ━ .NET快速信息化系统开发框架 工作流程组件介绍 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部 ...

  2. RDIFramework.NET敏捷开发框架 ━ 工作流程组件介绍

    RDIFramework.NET,基于.NET的快速信息化系统敏捷开发.整合框架,给用户和开发者最佳的.Net框架部署方案. 1.RDIFramework.NET敏捷开发框架介绍 RDIFramewo ...

  3. RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件Web业务平台

    RDIFramework.NET ━ .NET快速信息化系统开发框架  工作流程组件Web业务平台 接前两篇: RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介 ...

  4. RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件WinForm业务平台

    RDIFramework.NET ━ .NET快速信息化系统开发框架 工作流程组件WinForm业务平台 接上篇: RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组 ...

  5. SpringMVC的工作流程?Mybatis和hibernate区别?

    SpringMVC的工作流程?1. 用户发送请求至前端控制器DispatcherServlet2. DispatcherServlet收到请求调用HandlerMapping处理器映射器.3. 处理器 ...

  6. RDIFramework.NET敏捷开发框架 ━ 工作流程组件Web业务平台

    接前两篇: RDIFramework.NET敏捷开发框架 ━ 工作流程组件介绍 RDIFramework.NET敏捷开发框架 ━ 工作流程组件WinForm业务平台 1.RDIFramework.NE ...

  7. 面试题:SpringMVC的工作流程

    SpringMVC是当今最主流的Web MVC框架,没有之一,要做一名合格的JavaWeb工程师,学好它势在必行! 与Struts2原理不同,SpringMVC是通过最基础最传统的servlet来实现 ...

  8. 16 SpringMVC 的请求参数的绑定与常用注解

    1.SpringMVC 绑定请求参数 (1)支持的数据类型 基本类型参数: 包括基本类型和 String 类型POJO 类型参数: 包括实体类,以及关联的实体类数组和集合类型参数: 包括 List 结 ...

  9. SpringMVC的工作流程以及组件说明

    1. SpringMVC处理流程 2. SpringMVC架构 2.1 框架结构 2.2 框架流程 1. 用户发送请求至前端控制器DispatcherServlet. 2. DispatcherSer ...

随机推荐

  1. 解决ios兼容性问题

    其实也不算兼容性问题 在做一个手指切换动画时,在安卓显示正常但是在iOS上切换图片时整个页面会向上或向下窜,这样非常印象美观,这种现象是由于ios自带的下拉刷新功能能影响的: 解决方法: 添加阻止事件 ...

  2. @Configuration的使用

    以下内容转载自:duanxz的spring4.0之二:@Configuration的使用,如有侵权,请联系作者本人予以删除 从Spring3.0,@Configuration用于定义配置类,可替换xm ...

  3. 周强201771010141《面向对象程序设计Java》第八周学习总结

    一.理论知识学习部分 Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个接口. 接口体中包含常量定义和方法定义,接口中只进行方法的声明,不提供方法的实现. 类似建立类的继承关系 ...

  4. 使用vue+koa实现一个简单的图书小程序(1)

    这个系列的博客用来记录我开发时候遇到的问题以及学习到的知识 边做边学: 前后端分离,高内聚低耦合小程序端使用了mpvue 内部使用了vuejs的语法 来做整个小程序的渲染层 后端使用的是koa2搭建一 ...

  5. Front-end: Using blurred backgrounds with contents unaffected.

    Purpose: Using a picture as the background of a page with blurred effect, while the content not blur ...

  6. IDEA 类图功能使用方法

    1. Ctrl+Shift+Alt+U显示类图,(可以选中代码中类,再按快捷键,直接进入此类的类图) 2. 在类图中,选中某类右击显示Show Implementations,弹出子类的选择框. 按S ...

  7. SQLI DUMB SERIES-8

    (1)在id后加单引号.无回显,加双引号跟正常输入是一样的回显,既然不会回显出错信息,只能进行盲注. (2)盲注的方法同less5

  8. Kibana简介及下载安装

    现在你已经安装了Kibana,现在你一步步通过本教程快速获取Kibana核心功能的实践经验.学习完本教程,你将: 1.加载案例数据到你安装的Elasticsearch中 2. 定义至少一个索引匹配模式 ...

  9. CentOS 7 快速部署 ELK

    先简单说一下部署思路及原理(不一定正确,只是个人理解而已) 1.修改系统参数,以便安装软件 2.安装配置elasticsearch,这个相当于总监测中心,用来收集logstash监测的各种服务应用日志 ...

  10. terraform 配置github module source

      terraform 支持多种module 的source 配置 以下是一个简单的使用github source的demo 测试项目 项目结构 ├── init.tpl ├── main.tf 代码 ...