`
v5qqbrowser
  • 浏览: 358165 次
文章分类
社区版块
存档分类
最新评论

Spring MVC中的MVC初始化

 
阅读更多

在Spring MVC中,首先进行的是IoC容器的初始化,包括Root和DispatchServlet对应的content。在IoC容器准备好以后,就开始进行MVC的初始化,包括关于HandleMapping、ViewResolver等的初始化。

在Spring MVC中,MVC的初始化在DispatchServlet的initStrategies方法中进行的。

MVC框架需要的主要功能是根据http请求的信息选择合适的controller,调用controller后,根据返回的结果选择合适视图进行渲染。所以在这里主要关注一下这两个方法:initHandlerMappings和initViewResolvers。initHandlerMappings方法初始化了寻找controller的规则,initViewResolvers初始化视图解析的方法。

那么首先来看一下initHandlerMappings。在spring mvc中,关于寻找controller的规则是用HandleMapping表示的,首先看一下HandleMapping接口类图:

HandlerMapping类图

在HandlerMapping接口中,定义了getHandler方法,根据http请求,取得对应的处理对象。这个处理请求的对象用HandlerExecutionChain类表示,在这个类中,包含两个主要属性,一个是真正处理请求的handler,另外一个是Interceptor的集合。

介绍完HandlerMapping接口后,就来看一下Spring MVC中是如何初始化HandlerMapping信息的:

在上述方法中,做的主要工作是是从容器中获取所有HandlerMapping类型的bean,然后将这些bean按照一定的规则进行排序(order接口),最后为handlerMap赋值,这样关于HandlerMapping的信息就全纪录在handlerMap中了。当有http请求时,会遍历handlerMap集合,选择合适的HandlerMapping实现,调用getHandler方法取得HandlerExecutionChain对象,然后执行真正的业务处理。

在调用完controller后,Spring MVC会进行根据执行结果进行视图解析,这个任务是由ViewResolver进行的,关于ViewResolver的工作原理,见这篇文章:http://blog.csdn.net/prince2270/archive/2010/09/17/5891085.aspx

那下面就来看一下Spring MVC是如何初始化ViewResolver信息的:

与HandlerMapping信息的初始化方法类似,取得IoC容器中所有的ViewResolver类型的bean,将其放入到viewResolvers中,并按照一定的规则进行排序。

经过MVC的初始化,所有的信息已经准备就绪,时刻准备着处理http请求了。

分享到:
评论

相关推荐

    spring mvc项目

    可用于分析spring mvc源码、spring mvc父子容器初始化流程、session和cookie机制、spring session等,也可以用于学习Java Web(servlet、filter、listener等)、spring源码等。 该项目使用servlet3.0规范,无web.xml...

    Spring MVC启动时初始化的几个常用方法

    NULL 博文链接:https://bijian1013.iteye.com/blog/2296743

    基于spring MVC的论坛

    解压后,先初始化mysql,运行mysql。运行resin目录下的httpd.exe文件即可(请确保resin解压在D盘根目录下面,由于配置的时候是写死的引用D:\resin-pro-3.1.12\lib\aspectjweaver-1.7.0.jar)共有3个解压缩文件,由于...

    Spring Web MVC入门教程

    包括:功能、配置、上下文关系、初始化顺序等 第三章:注解式控制器开发详解 包括:注解式开发HelloWorld、处理器定义、请求映射、REST风格支持、请求数据映射、数据绑定等诸多内容 第四章:数据类型转换 包括:...

    spring+spring mvc+hibernate开发工程财务管理辅助系统

    系统的操作:用户超级管理员进入系统添加分公司,如添加湖北分公司,公司编号HB001(会生成分公司系统管理员HB001_admin,密码:admin),再用分公司系统管理员给分公司添加业务人员(初始化密码:000000),系统管理...

    spring mvc后台管理系统

    简单后台管理系统 基于maven管理,整合最新spring mvc 4.3.3.RELEASE版整合了mybatis 3.4.1,涵盖了目前互联网web系统最流行的组件,log4j2日志...数据库使用mysql,建表脚本及初始化脚本都在src\resources\sql文件夹里

    基于spring MVC的论坛002

    解压后,先初始化mysql,运行mysql。运行resin目录下的httpd.exe文件即可(请确保resin解压在D盘根目录下面,由于配置的时候是写死的引用D:\resin-pro-3.1.12\lib\aspectjweaver-1.7.0.jar)共有3个解压缩文件,由于...

    Spring MVC深入学习之启动初始化过程

    最近因为工作的原因在学习Spring MVC,为了更深入的学习Spring MVC,下面这篇文章主要给大家介绍了关于Spring MVC深入学习之启动初始化过程的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习...

    测试spring mvc

    这是一个测试spring MVC的的代码,用作初始化框架,可以参考

    activiti 基础 web项目 spring mvc

    1.在mysql中创建数据库activiti,首先根据自己的数据库(mysql的版本5.5,其他的自行测试哈)执行对应的sql文件初始化数据库(webroot下有) 2.更改配置文件resources下的jdbc.properties,修改数据库连接信息 3.发布...

    Java之Spring Boot详解

     Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简单的来说 Spring ...

    spring-webapp-without-xml:Spring MVC 初始化程序示例

    Spring MVC 初始化程序示例 使用WebApplicationInitializer而不是web.xml基本 Spring MVC 4.0.x 应用程序。

    看透springMvc源代码分析与实践

    13.5.1 初始化Model192 13.5.2 更新Model197 13.6 ServletInvocableHandlerMethod199 13.6.1 HandlerMethod199 13.6.2 InvocableHandlerMethod203 13.6.3 ServletInvocableHandler-Method205 13.7 ...

    Spring Boot实战 ,丁雪丰 (译者) 中文版

    1.2.2 使用Spring Initializr初始化Spring Boot项目 10 1.3 小结 18 第2章 开发第一个应用程序 19 2.1 运用Spring Boot 19 2.1.1 查看初始化的Spring Boot新项目 21 2.1.2 Spring Boot项目构建过程...

    SpringBoot实战(第4版)清晰版

    2 使用 Spring Initializr 初始化 Spring Boot 项目 10 1 . 3 小结 18 第 2 章开发第一个应用程序 19 2 . 1 运用 Spring Boot 19 2 . 1 . 1 查看初始化的 Spring soot 新项目 21 21 . 2 Spring Boot 项目构建过程...

    Spring + Spring MVC + SpringData JPA + mysql +jsp实现一个简易的个人博客系统

    1、系统用户初始化 2、用户登录验证 3、关注好友 4、取消关注 微博模块 1、发布微博 2、微博点赞 3、评论微博 4、删除微博 时间线模块 1、微博首页 2、微博广场 3、用户微博首页 4、我的主页 分层结构如下 • 实体...

    spring4mvc+hibernate4+Ext4MVC的demo案例

    一个简单的ext4MVC界面 demo,左侧提供异步树形菜单(真的查询)..后台采用的 spring4MVC+hibernate4 压缩包里,提供了源代码和war包,源代码使用maven构建...代码里包含了树形sql菜单树.. ...并且运行init_sql,初始化树...

    Spring MVC之DispatcherServlet详解_动力节点Java学院整理

    DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。  ...

    SSH项目初始化模板

    一个简单的项目初始化模板,集成shiro,spring,hibernate,spring mvc,ehcache,disconver,bootstrap。搭建项目时候不错的一个选择!

    基于SSM的爬虫系统,Spring+Spring MVC+MyBatis+Druid+Redis+MQ.zip

    爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的...

Global site tag (gtag.js) - Google Analytics