lombok使用@Data注解下的不标准驼峰导致参数获取不到的问题及解决

在SpringBoot开发中,Lombok的@Data注解简化了getter、setter等方法的编写。然而,当实体类参数命名不遵循标准驼峰命名时,可能导致参数无法正确获取。通过使用@JsonProperty注解,可以重新定义参数名,解决这个问题。但最稳妥的方法是直接遵守驼峰命名规则,或者重写get、set方法。
部署运行你感兴趣的模型镜像

lombok的便捷性

在springboot的开发中,lombok是一个非常好用、智能的插件,只要装了lombok的插件/依赖,就能用注解的方式帮你完成get、set、toString等方法的编写。
比如用以下方式引入lombok的依赖:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.0</version>
    </dependency>

使用@Data注解遇到的诡异问题

本次我遇到一个很诡异的问题,使用lombok的@Data注解时,由于命名不标准,导致springboot不认识我的参数了,上代码:

实体类:

package hm.entity;
import lombok.Data;
@Data
public class ReqTest {
    //创建人guid
    String createByGuid;
    //申请理由
    String applyMessage;
    //工单类型
    Integer orderType;
    //流程模板id
    Integer SProcedureTypeId;
}

接口里使用实体类:

@RestController
@RequestMapping("/demo1")
public class Demo1 {
    @RequestMapping("/save")
    public String save(@RequestBody ReqTest reqTest){
        System.out.println("收到的参数是:" + reqTest.toString());
        return "";
    }
}

我的请求参数:

{
"createByGuid":"060905223",
"applyMessage":"请给我100块",
"orderType":2,
"SProcedureTypeId":3
}

控制台打印:

收到的参数是:ReqTest(createByGuid=060905223, applyMessage=请给我100, orderType=2, SProcedureTypeId=null)

奇怪,为什么最后一个参数收不到呢,怀疑是不标准的驼峰导致的问题,于是乎我又把实体类和请求值都改成了小写开头的:sProcedureTypeId,然鹅控制台打印的依然是null。
贴两张图看看效果:
在这里插入图片描述

使@JsonProperty完美解决

JsonProperty的作用是:把属性的名称序列化为另一个名称,比如把myBeautifulGirl叫做girl
在这里插入图片描述
这个注解可以重新定义前端传入的参数名,也可以重新定义后端返回给前端的参数名。

@JsonProperty新定义前端传入的参数名样例:

在这里插入图片描述

@JsonProperty新定义后端返回的参数名样例:

在这里插入图片描述
如图所示,返回值里的参数名确实是@JsonProperties里定义的,但是却发现了一个多余的属性,太奇怪了(说多了都是泪,为什么我要用这么不规范的参数名)。

最规矩的处理方法:重写get\set方法:

估计是@Data这注解里自己实现的get、set不满足我的规范,那我自己重写一下吧,终于能行了:
在这里插入图片描述

最最规矩的处理方法:参数名规规矩矩,满足驼峰的要求!
@JsonProperty里看来也有坑,改天再研究下,先下班。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值