Flowable入门系列文章2 - 创建一个Flowable流程引擎

我们将构建一个简单的示例,演示如何创建Flowable流程引擎,介绍一些核心概念并演示如何使用API。屏幕截图显示了Eclipse,但是任何IDE都可以工作。我们将使用Maven来获取Flowable的依赖关系并管理构建,但是同样的,任何其他的方法也是可行的(Gradle,Ivy等)。
我们将构建的示例是一个简单的假期请求过程:

  • 该雇员要求一些假期
  • 该经理批准或拒绝该请求
  • 我们会模仿在一些外部系统中注册请求,并发送一封电子邮件给结果的员工

首先,我们通过File→New→Other→Maven Project创建一个新的Maven项目
在这里插入图片描述
在点击next后,我们创建一个简单的项目(跳过原型选择)
在这里插入图片描述
填写我们的“Group Id”和“Artifact id”信息:
在这里插入图片描述
现在创建了一个空的Maven项目,我们将添加两个依赖项:

  • Flowable流程引擎允许我们创建ProcessEngine对象并访问Flowable API。
  • 内存中的数据库H2(在这种情况下,Flowable引擎需要数据库来存储运行流程实例时的执行和历史数据。请注意,H2依赖包括数据库和驱动程序。如果您使用其他数据库(例如,PostgresQL,MySQL等),则需要添加特定的数据库驱动程序依赖项。
    将以下内容添加到您的pom.xml文件中:
<dependencies>
 <dependency>
   <groupId>org.flowable</groupId>
   <artifactId>flowable-engine</artifactId>
   <version>6.2.0</version>
 </dependency>
 <dependency>
   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.3.176</version>
 </dependency>
</dependencies>

如果由于某种原因而不自动检索依赖的JAR,则可以右键单击该项目并选择Maven→更新项目来强制手动刷新(但通常不需要这样做)。在项目中,在“ Maven Dependencies”下,你现在应该看到Flowable引擎和其他各种(传递的)依赖关系。
创建一个新的Java类并添加一个常规的Java主要方法:

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

我们需要做的第一件事是实例化一个ProcessEngine实例。这是一个线程安全的对象,您通常只需在应用程序中实例化一次。一个流程引擎从创建ProcessEngineConfiguration实例,它允许您配置和调整设置的流程引擎。通常,ProcessEngineConfiguration是使用配置XML文件创建的,但是(正如我们在这里所做的那样),您也可以通过编程来创建它。ProcessEngineConfiguration所需的最小配置是到数据库的JDBC连接:

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行创建了一个独立的配置对象。这里的“独立”是指这样一个事实,即引擎是完全由自己创建和使用的(而不是在Spring环境中,而不是使用SpringProcessEngineConfiguration类)。在第11到14行,传递到内存中的H2数据库实例的JDBC连接参数。重要说明:请注意,这样的数据库在JVM重新启动时不能存活。如果您希望数据持久化,则需要切换到持久数据库并相应地切换连接参数。在第15行,我们将一个标志设置为true以确保数据库模式在JDBC参数指向的数据库中不存在的情况下被创建。或者,Flowable附带一组SQL文件,可用于手动创建包含所有表的数据库模式。
所述流程引擎对象然后使用此配置(第17行)创建。
你现在可以运行项目了。Eclipse中最简单的方法是右键单击类文件并选择Run As→Java Application:
在这里插入图片描述
该应用程序运行没有问题,但是,没有有用的信息显示在控制台中,除了一个消息,指出日志记录没有正确配置:
在这里插入图片描述
Flowable在内部使用SLF4J作为其日志框架。在这个例子中,我们将在log4j记录器上使用SLF4j,所以将下列依赖添加到pom.xml文件中:

<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需要一个属性文件进行配置。使用以下内容将log4j.properties文件添加到src / main / resources文件夹中:

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

重新运行应用程序。您现在应该可以看到有关启动引擎的信息记录以及数据库中正在创建的数据库模式:
在这里插入图片描述
我们现在已经成功创建并启动了一个流程引擎。

上面文章来自盘古BPM研究院:http://vue.pangubpm.com/
文章翻译提交:https://github.com/qiudaoke/flowable-userguide
了解更多文章可以关注微信公众号:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值