多语言展示
当前在线:1008今日阅读:23今日分享:25

springboot项目(三)集成activity6.0.0

activity以Java为中心的开源BPMN引擎,支持实际的流程自动化需求。Spring Boot目的是用来简化新Spring应用的初始搭建以及开发过程。
工具/原料
1

电脑

2

intelliJ idea,jdk1.8,mysql

集成activity
1

现在我们继续在springboot项目(二)的基础上,再进行集成activity6.0。

2

首先我们需要引入activity的jar包,所以需要先在pom.xml文件中添加:    org.activiti    activiti-spring-boot-starter-basic    6.0.0 

3

需要在SpringbootProjectApplication启动类中加入@SpringBootApplication(exclude = SecurityAutoConfiguration.class)注释,不然会报java.lang.ArrayStoreException异常。还有需要在resources资源文件中添加processes文件夹不然会报class path resource [processes/] cannot be resolved to URL because it does not exist

4

按上边的步骤完成启动成功后如下图;数据库中的流程引擎相关表也会自动帮你建好。

5

完成以上步骤初步完成springboot项目集成activity6.0.0,接下来测试集成的activity6.0.0的使用情况。

测试activity
1

首先我们需要创建一个流程图文件First.bpmn,如果idea打开后,没有如下图所示的工具栏,则需要下载插件actiBPM。

2

创建简单的流程图如下图所示;流程图需要开始和结束,中间引入两个UserTask任务节点,点击流程图的空白处,编辑流程图的唯一固定ID。

3

测试代码如下: import org.activiti.engine.ProcessEngine; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;  import javax.annotation.Resource;  /**  * Created by 30721 on 2019/7/7.  */ @RunWith(SpringRunner.class) @SpringBootTest public class ActivityTest {      @Autowired     private ProcessEngine engine;      @Autowired     private RuntimeService runtimeService;      @Autowired     private RepositoryService repositoryService;      @Autowired     private TaskService taskService;      @Test     public void test() {         RepositoryService repositoryService = engine.getRepositoryService();       // 部署流程文件         repositoryService.createDeployment()                 .addClasspathResource('processes/First.bpmn').deploy();         // 启动流程       ProcessInstance processInstance = runtimeService.startProcessInstanceByKey('process1');       // 查询第一个任务       Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();       System.out.println('当前节点名称' + task.getName());       // 完成第一个任务       taskService.complete(task.getId());       task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();       System.out.println('流程结束后,查找任务:' + task);       engine.close();       System.out.println('================================================');     } }

4

运行结果如下图:第一个节点是Expense Request,第一个节点同意后,流程转到第二个节点了Handle Request。流程没有问题,集成的activity能够正常使用。

注意事项

activity中有很多事件,这边不多做赘述,需要自己去学习。

推荐信息