首页 > 编程语言 > 详细

Spring学习总结(2.1)— Spring MVC

时间:2015-04-30 01:03:42      阅读:219      评论:0      收藏:0      [点我收藏+]

简介

    Spring MVC是MVC模式在UI中的使用,当然Spring MVC只是其中的一种。这个模式的特点是:分离了模型、视图、控制器三种角色。将业务处理从UI设计中独立出来,分装到模型和控制器设计中去,使得他们相互之间解耦。这样的话,它们就可以独立扩展。

流程

技术分享

  1. 客户端请求提交到DispatcherServlet
  2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller
  3. DispatcherServlet将请求提交到Controller
  4. Controller调用业务逻辑处理后,返回ModelAndView
  5. DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图
  6. 视图负责将结果显示到客户端

WEB与Spring MVC的关系

    Spring MVC也是Spring框架的一部分,所以Spring MVC也要基于IOC容器来使用。而Spring IOC容器是一个独立的模块,它并不能直接的在web容器里使用。所以需要设计一个启动和初始化IOC容器的过程。看如下配置文件:
<span style="font-family:FangSong_GB2312;font-size:18px;">           
   <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <servlet>
        <servlet-name>action</servlet-name>
                   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	        <init-param>
	                 <param-name>contextConfigLocation</param-name>
	                 <param-value>/WEB-INF/spring-mvc.xml,classpath:config/applicationContext-common.xml</param-value>
	        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet></span>
    这两个配置项listener配置了一个监听器,作用是监听WEB容器的启动,然后触发Spring IOC加载到WEB 容器中来。Servlet配置项配置的是Spring MVC的主分发器。其中参数指定了配置的bean的xml文件路径。这里的listener和DispatcherServlet为WEB Context访问Spring MVC提供了入口。

上下文在WEB容器中的启动

  其实,在WEB中启动Spring MVC就是创建上下文关系。首先DispatcherServlet拦截的Http请求时需要Spring MVC为其提供相应的处理类。所有的配置好的需要Spring MVC管理的类就构成了一个系统的上下文关系。也就是说,所谓的上下文可以简单的理解为Bean的集合吧。     
技术分享
    上图为上下午关系的创建过程,根上下文是由WEB Context创建的,余下的子上下文关系都是由ContextLoader来创建的。这样Spring MVC在WEB Context中就搭建起来了。
    总结:这篇博客讲了Spring MVC的基本流程和它与WEB 之间的关系。这些知识内容有助于对使用Spring MVC的理解。同时也是为了更好的使用吧。下篇再见!

Spring学习总结(2.1)— Spring MVC

原文:http://blog.csdn.net/zhuojiajin/article/details/45377377

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!