flowable集成spring boot ----任务监听器

任务监听器

任务监听器(task listener)用于在特定的任务相关事件发生时,执行自定义的Java逻辑或表达式。

任务监听器包含下列属性:

在这里插入图片描述

event(事件)(必填):触发任务监听器的任务事件类型。可用的事件有:
#create(创建):当任务已经创建,并且所有任务参数都已经设置时触发。
#assignment(指派):当任务已经指派给某人时触发。请注意:当流程执行到达用户任务时,在触发create事件之前,会首先触发assignment事件。这顺序看起来不太自然,但是有实际原因的:当收到create事件时,我们通常希望能看到任务的所有参数,包括办理人。

#complete(完成):当任务已经完成,从运行时数据中删除前触发。

#delete(删除):在任务即将被删除前触发。请注意任务由completeTask正常完成时也会触发。

class:需要调用的委托类
这个类必须实现org.flowable.engine.delegate.TaskListener接口。

package com.example.demo.listener;

import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyTaskCreateListener implements TaskListener {
  private static final Logger log = LoggerFactory.getLogger(MyTaskCreateListener.class);

  @Override
  public void notify(DelegateTask delegateTask) {
       log.info("MyTaskCreateListener");
  }
}

在这里插入图片描述

expression:(不能与class属性一起使用):指定在事件发生时要执行的表达式。

用法见另一篇文章:flowable集成spring boot ----流程动态赋值

delegateExpression:指定一个能够解析为TaskListener接口实现类的对象的表达式。
需要实现org.flowable.engine.delegate.JavaDelegate接口,并在execute方法中提供所需逻辑。当流程执行到达该活动时,会执行方法中定义的逻辑,并按照BPMN 2.0的默认方法离开活动。

哭泣,这里我遇到了问题,按说只要实现了org.flowable.engine.delegate.JavaDelegate接口的委托类,或者实现org.flowable.engine.delegate.TaskListener都可以使用委托表达式进行java服务调用,
在这里插入图片描述这是我的实现类:

package com.example.demo.delegate;


import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.JavaDelegate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.util.Map;

@Component("myTaskDelegate")
public class MyTaskDelegate implements JavaDelegate {
    private static final Logger log = LoggerFactory.getLogger(JavaDelegate.class);

    @Override
    public void execute(DelegateExecution delegateExecution) {
        Map<String, Object> variables = delegateExecution.getVariables();
        log.info(variables.toString());

    }
}

用户手册也是这么写的,但是我用flowable6.7.0两种实现都报错,报错信息如下,两种实现方式报错一样(spring boot 为2.5.4,本来是2.3.4-release怀疑是不是版本不对换了一下版本)

在这里插入图片描述

,使用6.6.0实现TaskListener的类可以,实现JavaDelegate依然不行,提示该类没有实现TaskListener,报错如下:
org.flowable.common.engine.api.FlowableIllegalArgumentException: Delegate expression ${myTaskDelegate} did not resolve to an implementation of interface org.flowable.task.service.delegate.TaskListener

有木有人知道这是什么原因导致的

如果你想在你的Spring Boot应用中使用Flowable BPMN流程引擎,可以通过添加`flowable-spring-boot-starter-process`依赖来实现。这个starter包含了所有的Flowable BPMN流程引擎的核心依赖。 以下是添加`flowable-spring-boot-starter-process`依赖的步骤: 1. 在你的`pom.xml`文件中添加以下依赖: ``` <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter-process</artifactId> <version>${flowable.version}</version> </dependency> ``` 其中`${flowable.version}`是Flowable版本号。 2. 启用Flowable自动配置 默认情况下,Spring Boot会自动配置Flowable。如果你需要关闭自动配置,可以在`application.properties`文件中添加以下属性: ``` flowable.autoconfigure.enabled=false ``` 3. 配置数据库 Flowable需要一个数据库来存储流程定义和运行时数据。你可以在`application.properties`文件中添加以下属性来配置数据库: ``` spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/flowable?useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=root ``` 这里的例子使用MySQL数据库,你可以替换成自己的数据库。 4. 启动应用 启动应用后,Flowable会自动创建所需的数据库表和索引,并且会自动部署`classpath:/processes`目录下的所有BPMN流程定义。 以上就是在Spring Boot应用中集成Flowable BPMN流程引擎的步骤。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值