我正在使用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中有更好的方法。
答案 0 :(得分:8)
如果我没记错的话,它会在Activiti中出现一些故障,但是如果你替换它就可以轻松解决它
<serviceTask id="servicetask" name="Service Task" activiti:class="some.class.path.ServiceClassDelegateSample"></serviceTask>
with delegate expression;
<serviceTask id="serviceTask" activiti:delegateExpression="${serviceClassDelegateSample}"></serviceTask>
其中serviceClassDelegateSample
是您的bean的名称。
但是为什么不能以第一种方式工作,我不知道。