如何“修改”底层框架源码中的某些功能

背景:
公司项目中所有实体的id全部是通过数据库自增的方式设置的,这样当数据量很庞大的时候,就会出现录入数据超级慢的问题,因为数据库要遍历整个表的数据,获取到最大id才能插入一条数据。
提出解决方案:
新建一个ids表专门存储每张表的最大id和表名字,这样,当向某个表中插入数据的时候,先在ids表中查一下这个表对应的最大id,这样就不用遍历整个表了。
开始开发:
因为项目中已经写死,插入数据库数据全部用的是自增。让在每个插入数据的代码中加查询ids表实在是个不可取的方法,工作量可想而知。

因为我们插入数据的时候全部用的是bugumongo框架(当然如果你们的是MySQL数据库的话,是其他框架咯),先用反编译软件查看保存数据库数据的源代码。

查看源码。导出源码包
如何“修改”底层框架源码中的某些功能

eclipse关联源码包
如何“修改”底层框架源码中的某些功能

修改源码的方式,可以直接利用反编译软件得到源码包,然后修改源码,重新生成自己的jar,替换原来的jar包就可以了。(当这个过程有点繁琐)
这里采用重写获取最大id的方法。只要保证包名和源码中的完全一致就行。

如何“修改”底层框架源码中的某些功能

这样就大功告成了。
当然有人可能会说用spring aop的方式加前置通知来实现这个功能。(大部分项目中这也是可以的,但这个方式有局限性。)
如有不懂的地方请联系本人qq:1913284695