lombok注解使用避坑-@data注解打成jar后消失了,也没有set和get方法生成

 

背景描述

最近做项目,开发一个dubbo服务给对方调用,DTO使用了@data注解,代替显式的get,set等方法,通过maven打成jar包deploy到私服,给对方引用。

问题描述

服务提供者的调用日志显示,查询结果成功有数据,list有3个对象数据,但是服务消费者的查询日志显示成功调用,但是数据为空,list有3个对象,但是对象的属性都为null。

解决过程

1、首先定位到问题出在序列化和反序列化上。

2、排查dto是否支持序列化和反序列化,没问题

3、排查dto是否存在继承关系,父类的属性与子类属性名称相同,有可能导致属性被赋值为null,也没问题

4、意外走进了依赖jar包里看看dto的字节码文件,发现@data注解没有了,也没有生成属性的get和set方法,意外之喜啊。怀疑是没有set方法,导致在反序列化时属性没有被赋值,还保持默认值null。

5、dto中手动加上了get和set方法,重新打包deploy到私服,调用测试,消费者终于查到数据了。打完收工。

6、总结,问题产生的根源都是认知的不足。下一章研究get和set消失的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值