springboot+ flowable 配置动态数据源(程序启动时进行指定flowable数据库启动)
在原有的项目内嵌入了flowable工作流,由于flowable表过多避免造成混乱所以决定将flowable数据库与原项目数据库分开,进行多数据源的配置使用mybatis-puls提供的工具包,dynamic,POM文件引入jar包然后再yml内配置多数据源多数据源配置完成,需要切换数据源使用DS注解(这块不懂的可以进行百度,这里不做详细描述)默认原项目数据源,启动报错在创建AppEngineFa
·
springboot+ flowable 配置动态数据源(程序启动时进行指定flowable数据库启动)
前言
在原有的项目内嵌入了flowable工作流,由于flowable表过多避免造成混乱所以决定将flowable数据库与原项目数据库分开,进行多数据源的配置
多数据源配置
使用mybatis-puls提供的工具包,dynamic,POM文件引入jar包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
然后再yml内配置多数据源
多数据源配置完成,需要切换数据源使用DS注解(这块不懂的可以进行百度,这里不做详细描述)
启动出现问题
默认原项目数据源,启动报错在创建AppEngineFactoryBean这个bean的时候,说找不到表,默认配置下还是获取原项目数据库
原因:启动时默认数据源是原项目数据库,原项目数据库内没有建表,所以flowable启动时报错
解决思路
根据报错的 AppEngineFactoryBean源码排查到,底层使用的是SPI机制
那么可以利用SPI机制在程序内修改他的默认数据源
编写实现类
用于程序启动加载flowable时将flowable的数据源进行修改
编写清除类
程序启动完成以后清除flowable数据源
使用SPI机制指定EngineConfigurator实现类(如不懂SPI机制的可以百度了解一下,这里不做详细解释)
文件里面填写实现类路径
启动
启动程序,启动成功
更多推荐
已为社区贡献2条内容
所有评论(0)