SpringMVC框架03——原理分析

SpringMVC的工作原理作为面试常问的问题,个人认为还是非常有必要弄清楚的
1、原理图
在这里插入图片描述SpringMVC的工作原理分为11个步骤,1.首先用户发送请求到前端控制器DispatcherServlet,2.前端控制器DispatcherServle收到请求后调用HandlerMapper处理器映射器,3.处理器映射器找到具体的处理器后生成处理器对象以及处理器拦截器(如果有的话)一并返回给前端控制器DispatcherServle,4.前端控制器调用处理器适配器HadnlerAdtapter,5.处理器适配器经过适配调用具体的处理器(controller,后台控制器),6.controller执行完成后返回ModelAndView,7.处理器适配器HadnlerAdtapter将ModelAndView返回给前端处理器DispatcherServle,8.前端控制器DispatcherServle将ModelAndView传给视图解析器ViewResolver,9.视图解析器解析后返回具体的View给前端控制器,10,前端控制器DispatcherServle根据view进行渲染,11.最后响应给用户。

源码分析
DispatcherServlet类
在这里插入图片描述DispatcherServlet类中initStrategies初始化的策略,它这里面把我们所定义的映射器、适配器、视图解析器都初始化了
在这里插入图片描述DispatcherServlet类中的static静态代码块,在类被加载的时候去处理,ClassPathResource获取DisptatcherServlet的类路径,PropertiesLoaderUtils.loadProperties(resource)加载我们的属性文件,
DEFAULT_STRATEGIES_PATH默认策略的路径,
那么在DispatcherServlet类被加载的时候,ClassPathResource会去类路径里面去找到DisptatcherServlet,然后把DispatcherServlet.prpperties里面的信息给加载到private static final Properties defaultStrategies里面,然后init初始化的时候就会从这里面读取信息
在这里插入图片描述DEFAULT_STRATEGIES_PATH默认策略的路径就是DispatcherServlet.prpperties
在这里插入图片描述然后看一下DispatcherServlet所继承的父类FrameWorkServlet中的contextConfigLocation这个就是我们在web.xml中配置的,它是一个成员变量
在这里插入图片描述web.xml中的contextConfigLocation
在这里插入图片描述配置文件DispatcherServlet.properties文件中的HandlerMapping提供了两个映射器,第一个就是根据javaBean的名称和url作为映射,第二个就是通过注解的方式作为映射,后面常用的也是第二个
在这里插入图片描述配置文件DispatcherServlet.properties文件中的HandlerAdapter提供了三个映射器,第一个基于HTTP请求的适配器,第二个是一个简单的适配器,第三个基于注解方法的处理器适配器,用注解的时候会用第三个适配器,因为基于注解的HandlerMapping有多个,所以需要专门把AnnotationMethodHandlerAdapter配置出来
在这里插入图片描述配置文件DispatcherServlet.properties文件中的ViewResolver视图解析器只有一个,所以不用去配,会自动加载
在这里插入图片描述
实际上在程序开发中DispatcherServlet、HandlerMaaping、HandlerAdapter、ViewResolver都不需要我们去写,清楚SpringMVC的处理流程以及稍微了解源码即可,主要还是写Controller

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值