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