一. 什么是Flowable
Flowable 是一个基于 Java 的开源工作流引擎,用于实现和管理业务流程。它提供了强大的工作流引擎和一套丰富的工具,使开发人员能够轻松地建模、部署、执行和监控各种类型的业务流程。Flowable 是 Activiti 工作流引擎的一个分支,诞生于 Activiti 项目与 Alfresco 合并后的分裂,继承了 Activiti 的大部分特性并在此基础上进行了进一步的开发和改进。
Flowable 的核心特点包括:
1. 灵活性和可扩展性:
Flowable 提供了灵活且可扩展的工作流引擎,可以根据不同的业务需求定制和扩展业务流程。
2. 图形化建模工具:
Flowable 提供了图形化的流程设计器,使业务分析师和开发人员能够通过拖放元素来建模和编辑业务流程,而不需要编写代码。
3. 规则引擎集成:
Flowable 可以与规则引擎(如 Drools)集成,使业务规则能够直接应用于业务流程中,从而实现更灵活的业务逻辑控制。
4. 支持多种执行环境:
Flowable 支持在多种执行环境中部署和执行流程,包括传统的 Java 应用程序、Spring 应用程序、Java EE 应用服务器等。
5. 全面的监控和管理功能:
Flowable 提供了监控和管理业务流程执行的工具和 API,可以实时跟踪流程实例的执行情况,并对流程进行管理和优化。
总的来说,Flowable 是一个功能强大且灵活的工作流引擎,为开发人员提供了一套完整的工具和 API,用于建模、部署、执行和管理业务流程,帮助企业实现业务流程的自动化和优化。
二. Flowable的安装
1. 资源包: https://github.com/flowable/flowable-engine/releases
2. 对应的流程设计器
3.我们把这个 flowable-ui.war 扔到Tomcat容器中然后启动Tomcat服务即可:
4.访问地址:http://localhost:8080/flowable-ui
三. Flowable的基本使用
1. 创建 ProcessEngine
1.1 添加依赖
1.2 获取流程引擎对象
如果是 spring 项目,则可以搞个配置类。使用的时候可以直接注入
1.3.直接获取流程引擎对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
如果 xml 文件的名称是自定义的,就采用以下的方式获取
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("MyFlowableCfg.xml");
ProcessEngine processEngine = configuration.buildProcessEngine();
1.4 启动程序,自动创建表
四. SpringBoot 整合 Flowable
1.添加依赖
<!-- SpringBoot整合flowable -->
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>6.6.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
2.yml配置文件
然后直接启动,服务就会自动初始化数据库
并且不需要创建 ProcessEngine 对象,可以直接注入;包括四个模块的服务也可以直接注入