SpringBoot中如何查看不同参数的参数解析器以及参数解析器和返回值种类(源码)

本文通过分析SpringBoot源码,详细揭示了如何在传入POJO类型参数时找到并理解其内部的参数解析器工作原理。作者逐步追踪DispatcherServlet的处理流程,展示了26种参数解析器和15种返回值类型。
摘要由CSDN通过智能技术生成

SpringBoot中参数解析器和返回值种类有很多,分析源码得到参数解析器尤其重要,本文章以传pojo类型参数为例,带你梳理源码中参数解析器到底在哪

一、定义接口

图中为已定义的接口,下面我们用此接口来演示传参过程

二、找到spring.factories

如图所示,再导入的依赖包中找到org.springframework.boot:spring-boot-autoconfigure:包,打开包下的META-INF文件夹中的spring.factories(如没有此文件,找后缀为。ico的文件打开)

打开后可以看见引入了许多类

ctrl+f打开搜索功能,找到DispatcherServletAoutoconfiquration,ctrl+鼠标左键进入

进入后找到@ConditionalOnclass的类DispatcherServlet,ctrl+鼠标左键进入

进入后ctrl+f打开搜索功能,找到doDispatch方法,方法中找到mv = ha.handle这一行,打上断点

三、启动项目

debug启动项目,此时运行到断点处,步入

步入

到此处为步过

步过至mav = this.invokeHandlerMethod(request, response, handlerMethod).这一行,步入

步过

步过至两个if判断结束后,我们可以看到,StringBoot提供的参数参数解析器有26种,而返回值种类有15种

再次步过很久(此时代码为一些基本配置),直到invocableMethod.invokeAndHandle(webRequest, mavContainer, new 0bject[0])这行代码,步入

再次步入

步入

步过

一直步过至try中,步入

此时的 resolver就是我们的参数解析器了

步过到下面,查看解析器

此时就得到传入参数为pojo类型,SpringBoot所用的参数解析器类型了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值