问题描述
之前在自己的springboot当中集成了flowable,在集成flowable之前,springboot当中又集成了其他的开源产品,当时心里的想法是,不同的开源产品,都要单独用一个新建的库,去存储对应开源产品数据表,这样在后期维护,迁移的时候,可以方便根据指定业务去迁移不同的业务,不需要,或者废弃的业务,只需要删除对应的整个库就完事了。
解决过程
当时在网上找了很多解决方案,但都不能解决我当时的问题(以下贴出网上最多的一种解决方案,以及该方案存在问题说明):
方案1:https://blog.csdn.net/weixin_42065235/article/details/125409865( 该方案通过实现EngineConfigurator接口,在flowable初始化之前切换当前线程中的数据源,以及在springboot启动结束后清空当前线程中的数据源,来完成flowable初始化建表工作)
存在问题:
由于我这边不止一个开源产品需要在系统启动时完成初始化建表工作,这就导致别的开源产品初始化建表如果发生在 flowable 建表完成后到 springboot启动结束之前,那其他开源产品建的表就全部跑到了
flowable库中去了,这结果显然不是我想要的
解决方案:
当时在网上找了好久,都没找到类似我这样问题的解决方案,后面实在是被逼的没办法了,我这边就直接去打断点调试,看flowable初始化建表的那段代码逻辑在哪儿,好巧不巧,被我找到了