Activiti7 探索系列一核心库的使用

本文为翻译文章,如有不合理处请查看原文https://hub.alfresco.com/t5/alfresco-process-services/activiti-7-deep-dive-series-using-the-core-libraries/ba-p/288484

简介

Activiti 7是Alfresco经过实战考验的Activiti工作流引擎的演变,完全被采用在云环境中运行。 它是根据Cloud Native应用程序概念构建的,与之前的Activiti版本在架构方面有所不同。 我们在之前的文章中还有一个新的Activiti Modeler。在本文中,我们将使用新的Activiti 7 Process Runtime和Task Runtime Java API来试用Activiti 7流程引擎。 我们将从Spring Boot 2应用程序执行此操作。 我们需要的所有Activiti 7 Java工件都可以在Alfresco的Maven Repository(Nexus)中找到。Spring Boot应用程序还将包含Web组件(即Spring MVC),因此我们可以创建一个小的ReST API来用于启动进程以及与进程和任务交互。 Activiti 7提供了一个ReST API,但是当我们只使用核心库时,我们不打算在本节中使用它。 在这里,我们只创建自己的简单ReST API,它将使用Activiti 7 Java库(即Process Runtime和Task Runtime)。这个新的API旨在提供Cloud Native方法的明确途径。 它们还包括用户的安全和身份管理。新API还简化了一些常见用例。在本文中,我们将使用Activiti 7 Core库实际构建一个简单的业务流程管理(BPM)应用程序/解决方案。 这通常不是你要做的事情,但能够理解Activiti 7提供的API是一个很好的练习。

Activiti 7 Deep Dive文章系列

本文是详细介绍Activiti 7的系列文章的一部分,应按列出的顺序阅读。

  1. 部署和运行业务流程
  2. 使用Modeler设计业务流程
  3. 构建、部署和运行自定义业务流程
  4. 使用核心库-本文

前期条件

  1. 已阅读并阅读了“Activiti 7  - 使用建模器设计业务流程”一文
  2. JDK已安装
  3. Maven已安装

源代码

您可以在此处找到与本文相关的源代码:

https://github.com/gravitonian/activiti7-api-basic-process

搭建springboot2应用

使用Spring Boot应用程序非常容易。 只需访问https://start.spring.io/并填写应用程序的数据,如下所示:

 

确保将Spring Boot版本2.0.x与Activiti 7 Beta 1  -  3一起使用,Beta 4应与版本2.1.x一致。

你不必像我一样使用相同的Group(org.activiti.training)和Artifact(activiti7-api-basic-process-usertask-servicetask-events)名称,只需使用您喜欢的任何名称即可。 但是,如果您从本文中复制代码,则使用相同的包名称(即同一组)可能会更容易。 搜索H2和Web依赖关系,以便它们包含在Maven POM中。 然后单击“Generate Project”按钮。 完成的Spring Boot 2 Maven项目将自动下载为ZIP。

标准spring boot应用测试

在继续使用Activiti之前,让我们确保Spring Boot应用程序正常工作。 这涉及两个步骤。 首先构建应用程序JAR,然后运行应用程序JAR。

构建应用程序jar:

 运行应用程序jar:

 Ctrl-C退出应用程序以继续下面的配置。

添加依赖(Activiti 7 Dependencies)

除了Activiti 7依赖项之外,Spring Boot应用程序具有我们需要的大多数依赖项。 所以让我们添加它们。 我们可以使用BOM(物料清单)依赖关系,它将引入所有需要的Activiti 7依赖关系管理配置,包括所有依赖关系的正确版本。

Pom.xml添加以下内容:

 这将导入Activiti 7的所有依赖项管理配置。现在我们只需要添加一个Activiti 7依赖项,它支持运行Activiti流程引擎,服务任务实现(如云连接器)和事件处理程序实现(如流程和任务侦听器)。 将以下依赖项添加到pom.xml:

 这将带来所有Activiti和Spring依赖项需要运行嵌入在Spring Boot应用程序中的Activiti 7流程引擎。 我还可以编写我们的服务任务实现和我们的流程引擎事件处理程序。

我们还不能使用这些新的依赖项运行应用程序,因为它将在resources / processes目录中查找流程定义。 如果此目录不存在,则抛出异常并停止应用程序。

应用程序添加流程定义

我们现在将我们在之前的一篇文章中设计的流程定义XML文件添加到项目中。 在src / main / resources目录下创建一个名为processes的新目录。 然后将.bpmn20.xml文件复制到此目录中。 您现在应该看到这样的目录结构:

 

这就是我们需要做的,我们现在可以测试启动应用程序了。

测试包含Activiti库和进程定义的Spring Boot App

我们现在可以打包并运行应用程序,以查看所有Activiti库是否已正确加载和是否正确读取了流程定义而没有错误。

 

添加与流程引擎交互的Rest 调用

我们现在可以使用Activiti 7流程引擎运行时库运行应用程序,因此我们可以创建一些标准的Spring MVC rest调用来与流程引擎和可用的流程定义进行交互

添加一些用户和组并启用Web安全性

为了能够与Process Runtime API进

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值