作家
登录

Spring思维导图,让Spring不再难懂(mvc篇)

作者: 来源: 2017-07-19 14:02:32 阅读 我要评论


写在前面

温故而知新,今天一路来复习一下spring mvc的内容吧。

spring mvc简介与运行道理

Spring的模型-视图-控制器(MVC)框架是环绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支撑可设备的处理器映射、视图衬着、本地化、时区与主题衬着等,甚至还能支撑文件上传。

(1) Http请求:客户端请求提交到DispatcherServlet。

【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!

(2) 寻找处理器:由DispatcherServlet控制器萌芽一个或多个HandlerMapping,找到处理请求的Controller。

(3) 调用处理器:DispatcherServlet将请求提交到Controller。

(4)(5)调用营业处劳憾サ回结不雅:Controller调用营业逻辑处理后,返回ModelAndView。

(6)(7)处理视图映射并返回模型: DispatcherServlet萌芽一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。

(8) Http响应:视图负责将结不雅显示到客户端。

重要注解

ContextLoaderListener

在讲ContextLoaderListener之前,起首来懂得一下web.xml的感化:

  • 一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。web.xml文件是用来初始化设备信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。当你的web工程没用到这些时,你可以不消web.xml文件来设备你的Application。
  • 当要启动某个web项目时,办事器软件或容器如(tomcat)会第一步加载项目中的web.xml文件,经由过程个中的各类设备来启动项目,只有个中设备的各项均无误时,项目才能精确启动。web.xml有多项标签,在其加载的过程中次序依次为:context-param >> listener >> fileter >> servlet。(同类多个节点以出现次序依次加载)

而spring mvc启动过程大年夜致分为两个过程:

  • ContextLoaderListener初始化,实例化IoC容器,并将此容器实例注册到ServletContext中。
  • DispatcherServlet初始化。

个中ContextLoaderListener监听器它实现了ServletContextListener这个接口,在web.xml设备这个监听器,启动容器时,就会默认履行它实现的办法。在ContextLoaderListener中接洽关系了ContextLoader这个类,所以全部加载设备过程由ContextLoader来完成。

前面说到DispatcherServlet中有个特别的Bean叫MultipartResolver,可用于限制文件的上传大年夜小等。当解析器MultipartResolver完成处理时,请求便会像其他请求一样被正常流程处理。

ServletContextListener 接口有两个办法:contextInitialized,contextDestroyed

DispatcherServlet

Spring MVC框架,与其他很多web的MVC框架一样:请求驱动;所有设计都环绕着一个中心Servlet来展开,它负责把所有请求分发到控制器;同时供给其他web应用开辟所须要的功能。不过Spring的中心处理器,DispatcherServlet,能做的比这更多。

下图展示了Spring Web MVC的DispatcherServlet处理请求的工作流。熟悉设计模式的同伙会发明,DispatcherServlet应用的其实就是一个“前端控制器”的设计模式(其他很多优良的web框架也都应用了这个设计模式)。

流程图:

在web.xml中的设备:

控制器:

个中

  • load-on-startup:表示启动容器时初始化该Servlet;
  • url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩大名的请求。

在Spring MVC中,每个DispatcherServlet都持有一个本身的高低文对象WebApplicationContext,它又持续了根(root)WebApplicationContext对象中已经定义的所有bean。这些持续的bean可以在具体的Servlet实例中被重载,在每个Servlet实例中你也可以定义其scope下的新bean。

WebApplicationContext持续自ApplicationContext,它供给了一些web应用经常须要用到的特点。它与通俗的ApplicationContext不合的处地点于,它支撑主题的解析,并且知道它接洽关系到的是哪个servlet(它持有一个该ServletContext的引用)

spring mvc同时供给了很独特别的注解,用于处理要乞降衬着视图等。DispatcherServlet初始化的过程中会默认应用这些特别bean进行设备。如不雅你想指定应用哪个特定的bean,你可以在web应用高低文WebApplicationContext中简单地设备它们。


  推荐阅读

  从零开始教你用Python做词云

【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 临渊羡鱼,不如退而结网。我们步步为营,大年夜头开端赞助你用Python做出第一张词云图来。迎接测验测验哦>>>详细阅读


本文标题:Spring思维导图,让Spring不再难懂(mvc篇)

地址:http://www.17bianji.com/lsqh/36292.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)