springboot获取请求参数源码分析

一、测试环境

springboot+postman。

注意

我是在对springmvc有一定了解的基础上进行分析,有些地方描述的不是很细致,请谅解。

学会debug是程序员的必须课!

控制器

1. @RequestMapping注解
2. 接收参数为普通参数,非json数据
在这里插入图片描述

请求详情

在这里插入图片描述

查看结果

在这里插入图片描述

二、源码分析

打断点

就在控制器打断点。
在这里插入图片描述

断点结果和选择入口

从invokeForRequest方法开始寻找源头!
在这里插入图片描述

1. invokeForRequest方法作为入口

在这里插入图片描述

2. getMethodArgumentValues方法

在这里插入图片描述

3. resolveArgument

里面会调用resolveName来获取具体参数值。
在这里插入图片描述
resolveArgument方法也会对传进来的参数进行验证。
在这里插入图片描述

4. resolveName会调用getParameterValues

从RequestFacade中的getParameterValues(name)来获取参数值
在这里插入图片描述

5. 最终会走到Parameters类中的getParameterValues方法

注意:paramHashValues属性值是在tomcat使用Http11Processor解析http请求的时候就已经赋值了!
在这里插入图片描述
从Parameters类中获取具体参数值
在这里插入图片描述

层层返回数据

最终才到达controller层。
在这里插入图片描述

总结

这是我第一次对spring关于请求参数方面的细致了解,描述的不是很清晰。这次全当是记录。有时间会深入了解,再做更加清晰详细的记录。
对于新手小白来说,往往会对一些基本问题困扰。如乱码问题,请求参数接收不到等问题。这些最基本的问题都需要小白们(包括我),一步步的去探索,去解决。在探索和解决的过程中成长!

关于乱码问题:
https://blog.youkuaiyun.com/ITxiaofeixiang/article/details/113182289

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值