空指针异常:参数进入方法后参数值消失----@RequestBody

背景:

当我兴致勃勃的写完一个接口后,迫不及待的打开了我的大postman,想要好好地测一下这个小接口

结果: 

我辛苦的把参数按照json格式写入接口,小心翼翼点了一下send,很好,没有报错,但是也没有结果(就和你的人生一样hahaha)

为啥没哟结果呢,我找了半天也没找到逻辑问题,试试debug,好嘛一下子就发现我的参数都没有被传进来。

在controller层我的参数正常

 但是到了service层(我们公司多一个facade层)时候发现参数丢失了????

 仔细看看咱们得方法,一下就看出来了,方法接口入参未加@RequestBody注解,添加即可解决问题

在我们开发过程中总会遇到些小问题,这些都是我们的宝贵经验,再这里我记录下来,也分享也需要帮助的同学。 

@RequestBody注解:

@RequestBody注解用来将HTTP请求体中的JSON映射到Java对象。不同于@RequestParam(用于提取查询参数)和@PathVariable(用于URL路径中的变量),@RequestBody专门用于处理请求体的内容。

如果不使用@RequestBody注解

问题表现: 如果您在POST请求的接口参数中没有加入@RequestBody注解,而实际请求中包含了需要被解析的JSON数据,则会出现以下问题:

  1. 参数无法映射:Spring无法自动将请求体中的JSON数据映射到Java对象上。
  2. 请求体数据无法读取:这些数据可能会视为多余且被忽略。
  3. 类型转换异常:可能会抛出异常,提示无法解析请求体的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值