SrpingBoot集成Activiti之数据库初始化
原料:SpringBoot 2.2.5.RELEASE,Activiti 7.0.0.GA,Mysql 8.0.18
一、创建SpringBoot基础工程
主要是引入依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> <version>7.0.0.GA</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> </dependencies>
二、配置文件
在resource下边创建activiti.cfg.xml,主要配置数据库连接信息
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="databaseType" value="mysql"></property>
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC"></property>
<property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver"></property>
<property name="jdbcUsername" value="g****o"></property>
<property name="jdbcPassword" value="******"></property>
</bean>
</beans>
三、运行测试
编写运行测试类
public static void main(String[] args) {
DbSchemaCreate.main(args);
//SpringApplication.run(ActivitiInitDbApplication.class, args);
}
执行该main方法,控制台有相应的输出日志,数据库中也表格生成。
如上图:表格共25张,(activiti7没有ID类的表,因为这块通常业务端已有)
另外一种集成方式为标准的整合,即无上述的xml 配置文件。相关依赖引入后,只要在application.properties中做配置即可
spring.datasource.url=jdbc:mysql:///activiti?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.activiti.db-history-used=true
然后启动即会生成相关表格,值得注意的是,默认情况下不会生成history表格,必须加上spring.activiti.db-history-used=true方会生成。
另外关于表格生成的策略spring.activiti.database-schema-update说明如下 :
flase: 默认值。activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常。(生产环境常用) true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。(开发时常用) create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。(单元测试常用) drop-create: 在activiti启动时删除原来的旧表,然后再创建新表(不需要手动关闭引擎)。
浙公网安备 33010602011771号