flowable更换数据源与连接池

Spring Boot的约定大于配置。默认情况下,如果classpath中只有H2,就会创建内存数据库,并传递给Flowable流程引擎配置。

可以简单地通过提供Datasource bean来覆盖默认配置,来更换数据源。我们在这里使用DataSourceBuilder类,这是Spring Boot的辅助类。如果classpath中有Tomcat, HikariCP 或者 Commons DBCP,就会(按照这个顺序,先是Tomcat)选择一个(作为连接池)。例如,要切换到MySQL数据库:

@Bean
public DataSource database() {
    return DataSourceBuilder.create()
        .url("jdbc:mysql://127.0.0.1:3306/flowable-spring-boot?characterEncoding=UTF-8")
        .username("flowable")
        .password("flowable")
        .driverClassName("com.mysql.jdbc.Driver")
        .build();
}

从Maven依赖中移除H2,并为classpath添加MySQL驱动与Tomcat连接池:

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.34</version>
</dependency>
<dependency>
	<groupId>org.apache.tomcat</groupId>
	<artifactId>tomcat-jdbc</artifactId>
	<version>8.0.15</version>
</dependency>

应用这次启动后,可以看到使用了MySQL作为数据库(也使用了Tomcat连接池框架):

org.flowable.engine.impl.db.DbSqlSession   : performing create on engine with resource org/flowable/db/create/flowable.mysql.create.engine.sql
org.flowable.engine.impl.db.DbSqlSession   : performing create on history with resource org/flowable/db/create/flowable.mysql.create.history.sql
org.flowable.engine.impl.db.DbSqlSession   : performing create on identity with resource org/flowable/db/create/flowable.mysql.create.identity.sql

多次重启应用,会发现任务的数量增加了(H2内存数据库在关闭后会丢失,而MySQL不会)。

Flowable中配置双数据源可以实现将Flowable工作流的数据库与原项目的数据库分开。以下是配置Flowable数据源的步骤: 1. 配置主数据源:在项目的配置文件中,配置主数据源的连接信息,例如数据库的URL、用户名和密码等。 2. 配置Flowable数据源:在项目的配置文件中,配置Flowable数据源的连接信息,同样包括数据库的URL、用户名和密码等。 3. 创建数据源配置类:创建一个数据源配置类,用于配置主数据源Flowable数据源的相关信息。该类需要继承`org.flowable.spring.boot.DataSourceProcessEngineAutoConfiguration`类,并重写其中的方法。 4. 配置数据源配置类:在项目的配置文件中,配置数据源配置类的相关信息,例如指定数据源配置类的包路径。 5. 使用DS注解切换数据源:在需要切换数据源的地方,使用`@DS`注解来指定要使用的数据源。例如,使用`@DS("flowable")`注解来指定使用Flowable数据源。 6. 启动项目:启动项目时,Flowable工作流将使用配置的Flowable数据源进行操作,而其他部分将使用配置的主数据源进行操作。 下面是一个示例的配置类,用于配置Flowable数据源: ```java @Configuration public class FlowableDataSourceConfig extends DataSourceProcessEngineAutoConfiguration { @Bean @ConfigurationProperties(prefix = "spring.datasource.flowable") public DataSource flowableDataSource() { return DataSourceBuilder.create().build(); } @Bean public ProcessEngineConfigurationConfigurer processEngineConfigurationConfigurer( @Qualifier("flowableDataSource") DataSource flowableDataSource) { return processEngineConfiguration -> processEngineConfiguration.setDataSource(flowableDataSource); } } ``` 请注意,以上只是配置Flowable数据源的一种方式,具体的配置方式可能因项目的不同而有所差异。你可以根据项目的实际情况进行相应的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值