maven依赖
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
</dependency>
jdbc配置
spring2.0 开始默认使用的是hikari为数据源连接,具体druid和harike的对比,请移步HikariCP官网
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/activiti_test?useUnicode=true&characterEncoding=utf-8
username: root
password: 111111
hikari:
minimum-idle: 5
maximum-pool-size: 15
auto-commit: true
idle-timeout: 30000
pool-name: DatebookHikariCP
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: SELECT 1
activiti:
check-process-definitions: true
db-identity-used: true
database-schema-update: true
application配置
这里我们将禁用activiti的安全配置,如果需要使用acitiviti rest api,请按需要进行安全配置
@SpringBootApplication(exclude = {org.activiti.spring.boot.SecurityAutoConfiguration.class})
public class ActivitiApplication {
public static void main(String[] args) {
SpringApplication.run(ActivitiApplication.class, args);
}
}
创建bpmn文件
1.使用acitiviti的 admin及web项目创建bpmn文件
2.下载安装 actiBPM插件

在resources下创建个processes目录,在这个目录下创建bpmn文件,deploy的时候直接使用文件名部署即可.
例如test.bpmn

activiti service
| 服务 | 服务名称 |
|---|
| RuntimeService | 工作流运行服务 |
| TaskService | 工作流任务服务 |
| HistoryService | 工作流历史数据服务 |
| IdentityService | 用户服务 |
| RepositoryService | 部署服务 |
本项目对acitiviti的service 进行了封装,如需扩展服务,请查询activiti相应service进行开发。
ProcessInstance startProcess(String processDefinitionKey, Map<String, Object>
paramsMap) throws Exception;
void complete(String taskId, Map<String, Object> paramsMap);
public void complete(String taskId);
Task queryTaskByProcessId(String processInstanceId);
Task queryTaskById(String taskId);
void addCandidateGroup(String taskId, String groupId);
void claim(String taskId, String userId);
void setAuthUser(String userId);
byte[] definitionImage(String processDefinitionId) throws IOException;
byte[] getProcessImage(String pProcessInstanceId) throws Exception;
public Object queryVariables(String taskId, String varName);
HistoricProcessInstanceEntity queryProcessInstance(String processId);
void deleteProcessInstance(String processInstanceId, String deleteReason) throws Exception;
Deployment deploy(String fileName, String category);
void deleteDeployment(String deploymentId);
List<Deployment> deployList();
List<ProcessDefinition> getProcessList() throws Exception;
void suspendProcess(String processDefinitionId) throws Exception;
void activateProcess(String processDefinitionId) throws Exception;
public void rollBackTask(String taskId, String userId, String reason, String groupId, int backNum) throws
Exception;