大数据,机器学习,人工智能玩转大数据大数据

轻松开始工作流,快速开始flowable

2019-04-25  本文已影响0人  老老戟
图片.png

Springboot Flowable

环境:springboot 2以上
工具:ecplise(工作流插件)

如果有更好用的集成插件,希望可以介绍一下,毕竟用配套的designer,开发速度太慢了

Spring Boot是关于约定优于配置的。首先,您需要创建一个Spring Boot项目。最简单的方法是通过start.spring.io创建一个项目。例如,创建一个包含web和h2依赖项的项目。然后在创建的项目中添加flowable-spring-boot-starter或flowable-spring-boot-starter-rest依赖项。如果您不需要所有引擎,请查看其他Flowable启动器。例如对于Maven

<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter</artifactId>
    <version>${flowable.version}</version>
</dependency>

这就是所需要的。此依赖项将传递性地将正确的Flowable依赖项添加到类路径中。您现在可以运行Spring Boot应用程序:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}
因此,通过在类路径中添加依赖项并使用@SpringBootAplication注释,幕后发生了很多事情:
将自动部署processes文件夹中的任何BPMN 2.0流程定义。创建文件夹进程并将虚拟进程定义(名为one-task-process.bpmn20.xml)添加到此文件夹。该文件的内容如下所示。
* 将自动部署案例文件夹中的任何CMMN 1.1案例定义。

* 将自动部署dmn文件夹中的任何DMN 1.1 dmn定义。

* 将自动部署表单文件夹中的任何表单定义。

流程定义的XML内容如下所示。请注意,目前,我们正在将一个名为“kermit”的受让人硬编码到用户任务中。我们稍后再回过头来看看。

<?xml version="1.0" encoding="UTF-8"?>
<definitions
        xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
        xmlns:flowable="http://flowable.org/bpmn"
        targetNamespace="Examples">

    <process id="oneTaskProcess" name="The One Task Process">
        <startEvent id="theStart" />
        <sequenceFlow id="flow1" sourceRef="theStart" targetRef="theTask" />
        <userTask id="theTask" name="my task" assignee="kermit" />
        <sequenceFlow id="flow2" sourceRef="theTask" targetRef="theEnd" />
        <endEvent id="theEnd" />
    </process>

</definitions>

此外,添加以下代码行以测试部署是否实际工作。 CommandLineRunner是一种特殊的Spring bean,在应用程序启动时执行:

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

    @Bean
    public CommandLineRunner init(final RepositoryService repositoryService,
                                  final RuntimeService runtimeService,
                                  final TaskService taskService) {

        return new CommandLineRunner() {
            @Override
            public void run(String... strings) throws Exception {
                System.out.println("Number of process definitions : "
                    + repositoryService.createProcessDefinitionQuery().count());
                System.out.println("Number of tasks : " + taskService.createTaskQuery().count());
                runtimeService.startProcessInstanceByKey("oneTaskProcess");
                System.out.println("Number of tasks after process start: "
                    + taskService.createTaskQuery().count());
            }
        };
    }
}

如上所述,Spring Boot是关于配置的约定。默认情况下,通过在类路径上只有H2,它创建了一个内存中的数据源并将其传递给Flowable流程引擎配置。

要更改数据源,只需添加数据库驱动程序依赖项并将URL提供给数据库。例如,要切换到MySQL数据库

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/flowable-spring-boot?characterEncoding=UTF-8
spring.datasource.username=flowable
spring.datasource.password=flowable

如果应用程序现在已启动,您将看到它使用MySQL作为数据库(以及HikariCP连接池框架)

org.flowable.engine.impl.db.DbSqlSession   : performing create on engine with resource org/flowable/db/create/flowable.mysql.create.engine.sql
org.flowable.engine.impl.db.DbSqlSession   : performing create on history with resource org/flowable/db/create/flowable.mysql.create.history.sql
org.flowable.engine.impl.db.DbSqlSession   : performing create on identity with resource org/flowable/db/create/flowable.mysql.create.identity.sql
上一篇 下一篇

猜你喜欢

热点阅读