创建一个Flowable流程引擎

在这个初步教程中,将构建一个简单的例子,以展示如何创建一个Flowable流程引擎,介绍一些核心概念,并展示如何使用API。 截图时使用的是Eclipse,但实际上可以使用任何IDE。我们使用Maven获取Flowable依赖及管理构建,但是类似的任何其它方法也都可以使用(Gradle,Ivy,等等)。

我们将构建的例子是一个简单的请假(holiday request)流程:

  • 雇员(employee)申请几天的假期

  • 经理(manager)批准或驳回申请

  • 我们会模拟将申请注册到某个外部系统,并给雇员发送结果邮件

首先,通过File → New → Other → Maven Project创建一个新的Maven项目

在下一界面中,选中'create a simple project (skip archetype selection)'

填入'Group Id''Artifact id':

这样就建立了空的Maven项目,然后添加两个依赖:

  • Flowable流程引擎。使我们可以创建一个ProcessEngine流程引擎对象,并访问Flowable API。

  • 一个内存数据库。本例中为H2,因为Flowable引擎在运行流程实例时,需要使用数据库来存储执行与历史数据。 请注意H2依赖包含了数据库驱动。如果使用其他数据库(例如PostgreSQL,MySQL等),需要添加对应的数据库驱动依赖。

pom.xml文件中添加下列行:

 

1 2 3 4 5 6 7 8 9 10 11 12

<dependencies> <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-engine</artifactId> <version>6.3.0</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.3.176</version> </dependency> </dependencies>

如果由于某些原因,依赖JAR无法自动获取,可以右键点击项目,并选择'Maven → Update Project'以强制手动刷新(一般不会需要这么操作)。 在这个项目中的'Maven Dependencies'下,可以看到flowable-engine与许多其他(传递的)依赖。

创建一个新的Java类,并添加标准的Java main方法:

 

1 2 3 4 5 6 7 8 9

package org.flowable; public class HolidayRequest { public static void main(String[] args) { } }

首先要做的是初始化ProcessEngine流程引擎实例。这是一个线程安全的对象,因此通常只需要在一个应用中初始化一次。 ProcessEngineProcessEngineConfiguration实例创建。该实例可以配置与调整流程引擎的设置。 通常使用一个配置XML文件创建ProcessEngineConfiguration,但是(像在这里做的一样)也可以编程方式创建它。 ProcessEngineConfiguration所需的最小配置,是数据库JDBC连接:

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

package org.flowable; import org.flowable.engine.ProcessEngine; import org.flowable.engine.ProcessEngineConfiguration; import org.flowable.engine.impl.cfg.StandaloneProcessEngineConfiguration; public class HolidayRequest { public static void main(String[] args) { ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration() .setJdbcUrl("jdbc:h2:mem:flowable;DB_CLOSE_DELAY=-1") .setJdbcUsername("sa") .setJdbcPassword("") .setJdbcDriver("org.h2.Driver") .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); ProcessEngine processEngine = cfg.buildProcessEngine(); } }

在上面的代码中,第10行创建了一个独立(standalone)配置对象。这里的'独立'指的是引擎是完全独立创建及使用的(而不是在Spring环境中使用,这时需要使用SpringProcessEngineConfiguration类代替)。第11至14行中,传递了一个内存H2数据库实例的JDBC连接参数。 重要:请注意这样的数据库在JVM重启后会消失。如果需要永久保存数据,需要切换为持久化数据库,并相应切换连接参数。 第15行中,设置了true,确保在JDBC参数连接的数据库中,数据库表结构不存在时,会创建相应的表结构。 另外,Flowable也提供了一组SQL文件,可用于手动创建所有表的数据库表结构。

然后使用这个配置创建ProcessEngine对象(第17行)。

这样就可以运行了。在Eclipse中最简单的方法是右键点击类文件,选择Run As → Java Application :

应用运行没有问题,但也没有在控制台提供有用的信息,只有一条消息提示日志没有正确配置:

Flowable使用SLF4J作为内部日志框架。在这个例子中,我们使用log4j作为SLF4J的实现。因此在pom.xml文件中添加下列依赖:

 

1 2 3 4 5 6 7 8 9 10

<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency>

Log4j需要一个配置文件。在src/main/resources文件夹下添加log4j.properties文件,并写入下列内容:

log4j.rootLogger=DEBUG, CA

log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n

重新运行应用。应该可以看到关于引擎启动与创建数据库表结构的提示日志:

这样就得到了一个启动可用的流程引擎。接下来为它提供一个流程!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flowable流程引擎是一种常见的开源流程引擎之一,它用于管理和执行各种业务流程。它具有许多特性和功能,可以帮助组织实现流程自动化和业务流程管理。Flowable流程引擎可以与其他系统集成,并提供了一个可视化的流程设计器,用于创建和编辑工作流程Flowable流程引擎的表结构和实例初始化可以通过项目初始化流程引擎来完成。Flowable流程引擎与Activiti引擎有一定的关系,它们都是基于BPMN 2.0规范开发流程引擎Flowable是从Activiti项目分离出来的,目的是为了提供更灵活和可扩展的解决方案。Flowable拥有更快的开发和迭代速度,并提供了更多的功能和改进。 通过学习Flowable流程引擎,您可以了解如何使用它来管理和执行各种业务流程。您还可以学习如何创建和编辑流程,以及如何与其他系统进行集成。学习Flowable流程引擎将使您能够更好地理解和掌握业务流程管理的概念和技术,从而在实际项目中应用它们。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [小白学流程引擎-FLowable(一) —FLowable是什么](https://blog.csdn.net/weixin_44143114/article/details/128048613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [《Flowable流程引擎从零到壹》Flowable流程引擎介绍和实战项目初始化流程引擎实例](https://blog.csdn.net/shi_hong_fei_hei/article/details/127957444)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值