![Flowable流程引擎实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/157/48836157/b_48836157.jpg)
2.3.2 创建流程引擎
为项目添加3个依赖,具体如下。
(1)Flowable流程引擎:使我们可以创建一个ProcessEngine流程引擎对象,并访问Flowable API。
(2)数据库:本实例中使用H2数据库。当Flowable引擎运行流程实例时,需要使用数据库来存储运行时的数据与历史数据。
(3)日志框架:Flowable使用SLF4J作为内部日志框架。在本实例中,我们使用log4j作为SLF4J的实现。
在pom.xml文件中添加下列内容:
![](https://epubservercos.yuewen.com/0A60E2/28537528607631206/epubprivate/OEBPS/Images/txt002_12.jpg?sign=1739905749-Xs3k4eHGNDf3P0Zi6TX0W8TMxwdsgJWU-0-fbe6a8c3da266e4ee41c0ca5eb985864)
log4j需要配置文件。在src/main/resources文件夹下添加log4j.properties文件,并写入下列内容:
![](https://epubservercos.yuewen.com/0A60E2/28537528607631206/epubprivate/OEBPS/Images/txt002_13.jpg?sign=1739905749-exeh52VBW6XdHTpnKbrkn3ZM7nCLlYRh-0-58bafbbc8d29a2e1c7c69476892ceef9)
![](https://epubservercos.yuewen.com/0A60E2/28537528607631206/epubprivate/OEBPS/Images/txt002_14.jpg?sign=1739905749-IOTaxJfQLG7OO7dxEOQYDqYeTf3AKe9D-0-492ca9f197b721fe8a04d477b35e26a8)
注意,关于log4j的远程代码执行漏洞问题,因为其影响的范围是apache log4j 2.x<=2.14.1版本,所以上面的日志版本是安全的。
有时候,依赖JAR文件无法自动获取,可以右键点击项目,并依次选择Maven→Reload Project选项以强制手动刷新。
创建一个新的Java类,并添加标准的main()方法:
![](https://epubservercos.yuewen.com/0A60E2/28537528607631206/epubprivate/OEBPS/Images/txt002_15.jpg?sign=1739905749-MNpwqz1ekVPM92gps97jITR69DWxqKi3-0-fffc32c6ecc053a237c6fc5e608904aa)
我们要做的第一件事是实例化ProcessEngine流程引擎实例。首先创建一个ProcessEngineConfiguration实例,并配置数据库JDBC连接,然后由ProcessEngineConfiguration创建ProcessEngine实例,具体代码如下:
![](https://epubservercos.yuewen.com/0A60E2/28537528607631206/epubprivate/OEBPS/Images/txt002_16.jpg?sign=1739905749-l2W3bAS89F7dTTFaEbHuUPHkpptFphVl-0-a2ef8af110e5e3c8719980f205cfd6d0)
注意,H2数据库的数据在应用重启后会消失,如果要永久保存数据,需要切换为持久化数据库并修改连接参数和驱动。
现在可以运行应用了。在IDEA中最简单的方法是右键点击类文件,选择Run'HolidayRequest.main()'选项,如图2.11所示。
应用成功运行,这样就可以看到关于引擎启动和创建数据库表的信息日志了,如图2.12所示。
![](https://epubservercos.yuewen.com/0A60E2/28537528607631206/epubprivate/OEBPS/Images/txt002_17.jpg?sign=1739905749-6kSlJt1qxPxRoMbGgmrkL92TNkTFaswA-0-12e7736cf005ce15b47c2618be4e9834)
图2.11 运行应用
![](https://epubservercos.yuewen.com/0A60E2/28537528607631206/epubprivate/OEBPS/Images/txt002_18.jpg?sign=1739905749-wTEdqjkCJOwZKCwo86p2f8fYEWAB7Kn3-0-97e75951f113e0e738eac38093c60ef9)
图2.12 应用运行结果
现在已经启动了一个流程引擎,是时候给它提供一个流程了!