上一篇文章介绍了Activiti的基本信息相信大家对Activiti已经有了一个基本概念,本文接下来介绍Activiti的搭建和简单的使用.
项目创建
首先创建一个springboot项目,我懒人直接去官网拉一个基础版本用,
pom文件下加入以下代码:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!-- activiti -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.22.0</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.0</version>
</dependency>
yml配置文件做个简单的数据库配置就行
server:
port: 8880
spring:
activiti :
check-process-definitions: false
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost/activitidemo?useUnicode=true&characterEncoding=utf-8
username: root
password: 123456
check-process-definitions: false 关闭自动部署,默认true
创建activiti调用的controller
@RestController
@RequestMapping("activiti")
public class ActivitiController {
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
/**
* 部署
* */
@GetMapping("deploy")
public void deploy(String bpmnName){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.name("activiti测试")
.addClasspathResource("static/bpmn/"+bpmnName)
//.addClasspathResource("static/bpmn/helloworld.png")
.deploy();
System.out.println("部署ID:"+deployment.getId());//1
System.out.println("部署时间:"+deployment.getDeploymentTime());
}
/**
* 启动
* */
@GetMapping("start")
private void start(String processKey) {
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess");
System.out.println("成功");
}
/**
* 查询
* */
@GetMapping("findMyTask")
private void findMyTask() {
System.out.println("===========");
List<Task> tasks = taskService.createTaskQuery().list();
for (Task task : tasks) {
System.out.println("任务: " + task.getName()+"id:"+task.getId());
}
}
/**
* 提交
* */
@GetMapping("complete")
private void complete(String taskId){
taskService.complete(taskId);
System.out.println("成功");
}
}
这样简单的一个demo就完成了,亲测能跑
可视化页面选择
1.在eclipse中安装activiti插件(我就是这么搞的)
安装方法:
打开Eclipse -> Help -> Install New SoftWare-> Add
Name: Activiti BPMN 2.0 designer
Location: http://activiti.org/designer/update/
2.引入官网画图工具
官方的画图工具集成博客(引用):http://jmysql.com/activiti/126.html
3.自己做页面
源码地址:
链接:https://pan.baidu.com/s/16lbtR1xF4XgUspoV8aEXkQ
提取码:qu7y