前面的文章介绍了Activiti的流程部署。本章我们会将Activiti和Spring进行整合,并完成简单的审批和查询。
1、要实现Spring和整合,还需要引入activiti-spring包,pom的依赖如下:
2、Activiti的配置文件:
注意:在Activiti的配置文件中配置了几种主要的服务对象
Service服务说明
RepositoryService仓库服务
仓库服务是存储相关的服务,一般用来部署流程文件,获取流程文件,查询流程定义信息等操作,是引擎中的一个重要的服务。
创建方法:
RepositoryService repositoryService = engine.getRepositoryService();
运行时服务
流程运行时的流程实例,流程定义,流程版本,流程节点等信息,使用运行时服务操作,是引擎中的一个重要的服务
创建方法:
RuntimeService runtimeService = engine.getRuntimeService();
任务服务
流程运行时的会产生任务,接收、办理、完成等操作使用任务服务完成,是引擎中的一个重要的服务
创建方法:
TaskService taskService = engine.getTaskService();
3、Spring的配置文件:
4、启动个人任务
给流程添加审批人
单元测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml")
public class ProcessTest {
@Autowired
private TaskService taskService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private HistoryService historyService;
@Autowired
private RepositoryService repositoryService;
//部署流程
@Test
public void deployAddSigninProcess() {
repositoryService.createDeployment()
.key("addsignin_process")
.addClasspathResource("bpmn/proc_addsignin.bpmn")
.addClasspathResource("bpmn/proc_addsignin.png")
.name("补签流程")
.deploy();
}
//启动流程
@Test
public void startProcess(){
runtimeService.startProcessInstanceByKey("addsignin_process");
}
//查询个人任务
@Test
public void queryTask(){
TaskQuery taskQuery = taskService.createTaskQuery();
//按照审批人和流程id查询
taskQuery.taskAssignee("张三");
taskQuery.processDefinitionKey("addsignin_process");
List list = taskQuery.list();
for (Task task : list) {
System.out.println(task.getId());
System.out.println(task.getAssignee());
System.out.println(task.getName());
System.out.println(task.getOwner());
System.out.println(task.getCategory());
System.out.println(task.getCreateTime());
System.out.println(task.getExecutionId());
System.out.println(task.getTaskDefinitionKey());
System.out.println(task.getProcessDefinitionId());
}
}
//完成任务
@Test
public void completeTask(){
//通过TaskID完成任务
taskService .complete("2501");
System.out.println("完成任务");
}
}
以上我们通过Spring整合了Activiti,并且实现了基本的Activiti流程的启动、查询和完成。
千锋Java培训作为中国IT研发人才一体化服务的开拓者,为学生制定合理有序的学习计划,0学费入学,2周免费试听不满意不收费,与学员签订就业协议,坚持良心面授,从千锋Java培训班出去的学员均已高薪就业。千锋推出的免费java视频教程,让学员能够方面的巩固基础技术能力。