刚入职这个公司不久,数据库操作框架使用的mybatis-plus。发现数据库里面的id都是32位的,在excel批量导入数据的时候,自动生成id居然会duplicate key。我也不知道公司的框架里面id是怎么生成的。也没有看过mybatis源码。所以决定直接debug看自动id生成的策略。
一路debug,不知道走了多少个proxy,终于找到mybatis的insert入口:
然后又是一路debug,终于找到mybatis的参数生成器:
属性实在太多,断点加上判断条件,只看id属性:
最终找到mybatis的Idworker:
发现就是java的UUID生成....
呵呵,不得不佩服我的debug能力,几分钟解决的事还去看什么框架源码呢?(这就是你不看源码面试答不上底层原理的理由?)