复习步骤33-整合框架(4)整合Spring Boot
springboot 整合注意事项
pom.xml maven 加入activiti,springboot会自动进行管理
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0.RC1</version>
</dependency>
注意在默认情况下 resources目录文件下---资源文件 必须有子目录processes,
且在子目录processes下必须有bpmn流程文件,否则会报错,如下
springboot 可以自动扫描@Controller的类,因为内嵌了springmvc,
所以一看到这种加了注解@Controller的类,就认为他是Controller类
测试方法--先启动@SpringBootApplication public class BootApp {的main方法
TestController.java
package org.crazyit.act;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author lqx
*文件在 E:\学习文档子目录压缩\框架\工作流引擎\Activiti6.0\window\复习步骤33-整合框架(4)整合Spring Boot
或 我的网盘\我的笔记\学习文档子目录压缩\框架\工作流引擎\Activiti6.0\window\复习步骤33-整合框架(4)整合Spring Boot
*/
@Controller
public class TestController {
@RequestMapping("/hello")
@ResponseBody
public String hello() {
return "hello";
}
//在springboot pom.xl加入activiti,springboot会自动进行管理,想用那个activiti组件加注解@Autowired 就可以自动注入
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
@RequestMapping("/start")
@ResponseBody
public String start() {
String piId = runtimeService.startProcessInstanceByKey("actProcess").getId();
Task task = taskService.createTaskQuery().processInstanceId(piId).singleResult();
System.out.println("当前流程节点:" + task.getName());
return task.getId();
}
@RequestMapping("/complete/{taskId}")
@ResponseBody
public String complete(@PathVariable String taskId) {
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String piId = task.getProcessInstanceId();
taskService.complete(task.getId());
// 查询当前流程节点
Task currentTask = taskService.createTaskQuery().processInstanceId(piId).singleResult();
System.out.println("当前流程节点:" + currentTask.getName());
return "success";
}
}
项目结构