Camunda与springboot集成入门实战

本文是学习Camunda与springboot集成的一个入门案例。整体流程与Camunda的官网教程一致。
也可以参考官网进行学习,官网是基于eclipse的,我这里是基于idea的。

一.导入依赖

创建一个新的springboot项目,导入依赖。
项目的pom文件的主要内容为:

    <properties>
        <java.version>1.8</java.version>
        <camunda.spring-boot.version>7.17.0</camunda.spring-boot.version>
        <spring-boot.version>2.6.6</spring-boot.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.camunda.bpm.springboot</groupId>
            <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
            <version>${camunda.spring-boot.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.5</version>
        </dependency>
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

运行项目,访问http://localhost:8080/ ,即可以看到项目的运行界面。

看到的运行界面为:
在这里插入图片描述
第一次访问界面会要求创建一个账户。

创建一个用户后,既可以跳转到登录界面,可以用刚才创建的用户进行登录。登录成功后就可以看到camunda的管理页面如下。
在这里插入图片描述

自定义配置

在上一步中,我们是按照默认的配置进行运行,我们也可以进行自定义配置,最简单的方法就是在application.yml或application.properties中进行配置。

camunda.bpm:
  admin-user:
    id: demo
    password: demo
    firstName: Demo
  filter:
    create: All tasks

上面的配置分别配置了:

  1. 创建了管理员用户,以及相应的密码和名字
  2. 为任务列表创建了名字为All tasks的默认过滤器

再次启动项目,则可以直接登录。
在这里插入图片描述
在任务列表中也可以看到创建的默认过滤器。
在这里插入图片描述

部署和调用工作流流程

在上边学会了如何在spring boot中集成camunda,接下来就从一个例子中真正的体会二者是如何进行交互的。

首先,使用Camunda Modeler对流程进行建模。建好的模型如下图所示:
(Camunda Modeler是Camunda提供的画图软件,可以进行安装,可以生成图对应的xml格式,直接将其生成的xml文件保存即可)。

在这里插入图片描述
画图后记得设置id,id是一个图的唯一标识,后面部署流程图的时候也是使用id作为标识。

在这里插入图片描述

将文件(即刚刚提到的自动生成的xml文件)另存为demo1.bpmn,并将该文件保存在maven项目的resources目录下。

要实现业务流程的自动部署,需要做以下两点。

  1. 在resources下新建目录META-INF,并在该目录下新建processes.xml,xml文件内容可为空。
    在这里插入图片描述

  2. 在启动类中添加注解@EnableProcessApplication,如下

@SpringBootApplication
@EnableProcessApplication
public class CamundaDemoApplication {

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

}
  1. 接下来在程序中编写代码对流程进行加载。修改启动类为:
@SpringBootApplication
@EnableProcessApplication
public class CamundaDemoApplication {

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

        @Autowired
    private RuntimeService runtimeService;

    @EventListener
    private void processPostDeploy(PostDeployEvent event) {
        runtimeService.startProcessInstanceByKey("test");
    }

}

​ 注:这里的test对应于bpmn文件的id,id是流程图文件的唯一标识,这里必须与id相对应。

最后重启应用。

依旧是输入用户名和密码,可以在Camunda Tasklist 中看到我们刚刚定义好的流程。

本文参考了Camunda的官方文档:https://docs.camunda.org/get-started/spring-boot/model/。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值