我正在使用activiti 5.16.1在我的项目中启用工作流程.
我有一个spring bean,它执行业务任务,例如从数据库中为给定的id填充数据.
当我尝试在JavaDelegate任务中使用这些bean时,不会填充这些bean.
@Component
public class ServiceClassDelegateSample implements JavaDelegate {
@Autowired
private SampleService sampleService;
@Override
public void execute(DelegateExecution delegateExecution) throws Exception {
sampleService.doSomeTask();
}
}
但是,sampleService始终设置为null.
您是否了解如何在JavaDelegate任务中使用spring bean?
有类似问题here没有任何适当的解决方案,我希望在更新版本的Activiti有更好的方法.
解决方法:
如果我没记错的话,它在Activiti中会出现一些故障,但是如果你更换它就可以很容易地解决它
<serviceTask id="servicetask" name="Service Task" activiti:class="some.class.path.ServiceClassDelegateSample"></serviceTask>
用委托表达;
<serviceTask id="serviceTask" activiti:delegateExpression="${serviceClassDelegateSample}"></serviceTask>
其中serviceClassDelegateSample是bean的名称.
但是为什么不能以第一种方式工作,我不知道.