[大厂实习记录3]如何优雅的实现需求-->“记录某些更改操作的具体更改信息发给mq“

记一次需求
好久没写日志了,不是没活,是没时间写,需求都很赶,且都有后续优化,但日志也很有必要写,经验是宝贵但,记忆是不可靠的。必须要把经验记录下来。

在这里插入图片描述

需求大概是 需要在执行“某些”操作(这些操作有个特点就是执行后会造成更改数据库的结果)之后记录下来,需要记录更改了什么。然后把这些记录生产成消息发给mq去消费。

对于这次需求的实现,我是这样思考的。

1.需要记录这个操作更改了什么,那一定是有执行前和执行后的比较对象的。那如何优雅的比较同一个类的两个不同实例呢?

首先,那肯定是比较属性,但不能人工代码一个个手打比较属性。
在这里插入图片描述

所以我选择使用反射获取到对象所属类的所有属性。

那改了什么,这个返回值怎么设计。

为了明确改了什么,需要三个东西,1.具体属性字段,2.改之前,3.改之后
用什么数据结构?

用map,因为被修改的字段,和修改字段的具体两个内容(改之前和改之后)之间需要有映射。

map的key是String类型,是我们通过反射取到的字段名。

map的value是list类型,list(0)是改之前,list(1)是改之后。
如下可参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值