记一次lombok踩坑事件

由于请求报文是以json的形式传递参数,而controller层又用@RequestBody的方式接收参数,并转成对象。

这时候发现有两个字段怎么都取不到值,始终为null。抓包后,发现请求的报文没有问题,确实是有值的。

于是,把这个对象取不到值的两个字段改了名字,之后就能成功取到了。经过多次重命名调试,发现:当对象的属性第二个字母为大写字母时,就会出现json转对象取不到值的情况。初步怀疑是lombok自动生成get/set方法时会将首字母大写,于是两个大写字母连着会出问题。

于是‘东奔西走’问了一波之后,发现了问题所在。实际上是因为lombok自动生成的get/set方法不符合javabean的“规范”导致的。

记一次lombok踩坑事件

这图来源忘了哪里了,侵删。

还有一篇文章完美重现了我当时的情景,可以参考一下:https://blog.uyiplus.com/2018/lombok-quesion-1/