最近在写Flowable实战一书,刚好写到了在userTask上加任务监听器,然而通常情况下实现类注入的bean一直为null,解决方案如下:

 

1、流程定义xml中的任务监听器,使用delegateExpression表达式将所使用的任务监听器关联起来

<userTask id="test" name="测试" flowable:assignee="${applyUserId}" flowable:formKey="testForm">
      <extensionElements>
        <!-- <flowable:taskListener event="create" class="cn.flowable.listener.MyListener"></flowable:taskListener> -->
        <flowable:taskListener event="create" delegateExpression="${myListener}"></flowable:taskListener>
        <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
      </extensionElements>
    </userTask>

2、自己的任务监听器实现类需要实现org.flowable.engine.delegate.TaskListener类,通过   @Component(value="myListener")  注解将我的监听器交给spring管理,其中value的值和xml中delegateExpression表达式中变量的值保持一致

@Component(value="myListener"

public class MyListener implements TaskListener {


@Autowired
private BusLineService busLineService;
  
@Override
public void notify(DelegateTask delegateTask) {
//写自己具体的逻辑

}

}
 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐