创建SpringBoot项目:
导入activiti依赖:
由于activiti7是使用mybatis作为orm框架,我这里整合mybatis-plus,所以需要抛出mybatis
java
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M6</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
<version>7.1.0.M6</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
导入mybatis-plus依赖:
mysql不能忘记!!!
java
<!--mysql连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-plus依赖包-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
配置:
java
server:
port: 8080
spring:
output:
ansi:
enabled: always #启用ansi颜色输出
datasource:
url: jdbc:mysql://localhost:3306/activiti2?useUnicode=true&;characterEncoding=utf8&;zeroDateTimeBehavior=convertToNull&;useSSL=true&;serverTimezone=GMT%2B8&;nullCatalogMeansCurrent=true
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
activiti:
database-schema-update: true
history-level: full
check-process-definitions: false #是否检查resources/processes 目录
db-history-used: true #是否创建history表
database-schema-update 配置项可以设置流程引擎启动和关闭时数据库执行的策略,有以下四个选项:
false:false为默认值,设置该值,Activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,这需要手动创建。
true:设置为该值后,Activiti会对数据库中所有的表进行更新,如果表不存在,则Activiti会自动创建。
create-dorp:Activiti启动时,会执行数据库表的创建操作,在Activiti关闭时,执行数据库表的删除操作。
dorp-create:Activiti启动时,执行数据库表的删除操作,在Activiti关闭时,会执行数据库表的创建操作。
history-level 对于历史数据,保存到何种粒度,Activiti提供了history-level属性对其进行配置,有以下是个选项
none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
audit:除activit级别会保存在数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关细节数据
db-history-used 为true表示使用历史表,如果不匹配,则工程启动后可以检查数据库,只建立了17张表,历史表没有建立
测试部署:
java
@SpringBootTest
class ActivitiBootApplicationTests {
@Autowired
RepositoryService repositoryService;
@Autowired
TaskService taskService;
@Test
void contextLoads() {
// repositoryService.createDeploymentQuery().list().forEach(e->repositoryService.deleteDeployment(e.getId(),true));
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource("processes/MyDaleave-01.bpmn20.xml")
.name("请假流程")
.deploy();
System.out.println("deployment.getId() = " + deployment.getId());
System.out.println("deployment.getName() = " + deployment.getName());
}
}