首页 > 其他分享 >Spring MVC中的调用链路

Spring MVC中的调用链路

时间:2023-06-10 15:00:26浏览次数:37  
标签:HandlerMapping 请求 Spring MVC HandlerAdapter Handler 链路

在Spring MVC中,请求处理的过程通常分为以下几个步骤:

  1. 通过HandlerMapping根据请求的URL匹配到相应的Handler(处理器)。

  2. 通过HandlerAdapter调用对应的Handler处理请求。

  3. 调用Handler返回一个ModelAndView对象。

  4. 通过ViewResolver将ModelAndView中的视图逻辑名解析成对应的View(视图)。

  5. 最终渲染View并返回响应给客户端。

而HandlerMapping和HandlerAdapter则是用于实现上述第1步和第2步的两个最重要的组件。

HandlerMapping的作用是将请求映射到具体的Handler(处理器),从而确定如何处理该请求。HandlerMapping主要有两个默认实现类:RequestMappingHandlerMapping和SimpleUrlHandlerMapping。前者是基于@RequestMapping注解的映射,后者是基于请求URL和Handler的映射。此外,我们也可以自己实现HandlerMapping接口,来实现自定义的映射方式。

HandlerAdapter的作用是将请求交给对应的Handler进行处理,并将Handler处理结果封装成ModelAndView对象返回。HandlerAdapter是Spring MVC框架中的核心组件之一,其主要功能就是将不同类型的Handler适配成可以处理请求的标准接口,即Controller接口,大大增强了框架的扩展性。Spring MVC中默认提供了很多种HandlerAdapter实现类,如SimpleControllerHandlerAdapter、AnnotationMethodHandlerAdapter等。

总的来说,HandlerMapping和HandlerAdapter的作用是解决请求与处理器之间的映射和适配问题,让不同 kind of Handler(处理器)能够处理不同种类的请求,并最终返回视图给用户。

标签:HandlerMapping,请求,Spring,MVC,HandlerAdapter,Handler,链路
From: https://www.cnblogs.com/hardyzhou/p/17471297.html

相关文章

  • Spring中的三级缓存
    Spring中的三级缓存是针对bean的加载和创建过程而设计的。在Spring容器中,每次请求获取一个bean时,Spring首先检查一级缓存、二级缓存和三级缓存中是否已经存在该bean,如果存在,则直接返回缓存中的实例对象,否则才进行bean的创建。三级缓存包括:singletonObjects缓存:一级......
  • Spring中的字段注入是如何实现的
    spring中属性的注入方式Spring中属性注入的方式包括以下几种:Setter方法注入:通过在Bean类中定义对应的属性setter方法,然后在XML配置文件或Java配置类中使用或@Value注解来为这些属性设置数值。构造函数注入:通过在Bean的构造函数中定义对应的参数来实现。在XML......
  • Failed to bind properties under 'spring.datasource.primary' to javax.sql.DataSou
     2023-06-1011:04:13.778WARN22452---[main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.UnsatisfiedDependencyException:Error......
  • Failed to bind properties under 'spring.datasource.primary' to javax.sql.DataSou
     2023-06-1011:04:13.778WARN22452---[main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.UnsatisfiedDependencyException:Error......
  • Failed to bind properties under 'spring.datasource.primary' to javax.sql.DataSou
    ​  2023-06-1011:04:13.778WARN22452---[main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.UnsatisfiedDependencyException:......
  • Failed to bind properties under 'spring.datasource.primary' to javax.sql.DataSou
    ​  2023-06-1011:04:13.778WARN22452---[main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.UnsatisfiedDependencyException:......
  • 基于spring boot+mybatis+easyui开发的粮油MES系统源码
    粮油生产加工MES追溯系统源码粮油生产加工MES追溯系统,支持全流程生产溯源粮油MES质量管控防伪溯源系统可广泛用于粮油生产加工领域。实现种植主体、种植基地、生产计划、压榨、精炼、包装、销售、物料管理、检验检测等各个环节的数据采集,达到正向可追踪,反向可溯源,确保粮油品质。基......
  • Springboot项目展示层级结构后端工具类
    publicclassMenuHelper{/***使用递归方法建菜单*@paramsysMenuList*@return*/publicstaticList<SysMenu>buildTree(List<SysMenu>sysMenuList){//存放最终数据List<SysMenu>trees=newArrayList<......
  • SkyWalking分布式链路追踪工具的基本使用
    下载我们需要一个监控中心,还有一个javaagents工具apache-skywalking-apm(显示/存储多个程序的指标数据),APM是ApplicationPerformanceManagement的缩写和skywalking-agent(收集单个程序的指标数据)启动Skywalking和java程序apache-skywalking-apm\bin\startup.bat......
  • spring boot ResourceUtil工具类获取不到jar的classPath下面文件问题
    先说结论这种方式是获取不到jar里面的文件的,但是在本地可以跑,打成jar包就读取不到文件了,即便ResourceUtils是spring提供的。Filefile=ResourceUtils.getFile("classpath:temp\\file\\info.txt");spring提供的ClassPathResource对象是可以在本地和jar环境都获取到资源......