Flowable入门系列文章2-创建一个Flowable流程引擎
Posted 分享牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
了解更多文章可以关注微信公众号:
以上是关于Flowable入门系列文章2-创建一个Flowable流程引擎的主要内容,如果未能解决你的问题,请参考以下文章
Flowable入门系列文章21 - 基本的Flowable概念二