前言

在原有的项目内嵌入了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机制的可以百度了解一下,这里不做详细解释)

在这里插入图片描述
文件里面填写实现类路径
在这里插入图片描述

启动

启动程序,启动成功
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐