SrpingBoot集成Activiti之数据库初始化


原料:SpringBoot 2.2.5.RELEASE,Activiti 7.0.0.GA,Mysql 8.0.18

一、创建SpringBoot基础工程

主要是引入依赖

      
		
			org.springframework.boot
			spring-boot-starter
		
		
			org.activiti
			activiti-spring-boot-starter
			7.0.0.GA
		
		
			mysql
			mysql-connector-java
			runtime
		
	    

二、配置文件

在resource下边创建activiti.cfg.xml,主要配置数据库连接信息

<?xml version="1.0" encoding="UTF-8"?>

	
		
		
		
		
		
	

三、运行测试

编写运行测试类

	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启动时删除原来的旧表,然后再创建新表(不需要手动关闭引擎)。