시도 :
이 ProcessEngine
을 구축하기 전에 ProcessEngineConfiguration
-xyzService
을 포함 콩 맵을 추가합니다. 지도의 객체는 키에 의해 표현식에 액세스 할 수 있습니다. 예를 들어 : MyJavaDelegate
이
public class MyJavaDelegate implements JavaDelegate {
private Expression xyzServiceExp;
@Override
public void execute(DelegateExecution execution) throws Exception {
XyzService xyzService = (XyzService) xyzServiceExp.getValue(execution);
....
}
public void setXyzServiceExp(Expression xyzServiceExp) {
this.xyzServiceExp = xyzServiceExp;
}
}
이다 또는 당신이 beans
지도에 주입 서비스 JavaDelegate
인스턴스를 넣어 서비스를 정의 할 수 있습니다 경우 서비스 작업에
ProcessEngineConfigurationImpl cfg =
(ProcessEngineConfigurationImpl) ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
Map<Object, Object> beans = new HashMap<>();
beans.put("xyzService", new XyzService());
ProcessEngine engine = cfg.setBeans(beans).buildProcessEngine();
를 주입 서비스는 Field Injection
<serviceTask id="servicetask" name="Service Task" activiti:class="com.example.MyJavaDelegate">
<extensionElements>
<activiti:field name="xyzServiceExp">
<activiti:expression>${xyzService}</activiti:expression>
</activiti:field>
</extensionElements>
</serviceTask>
를 사용하여 작업은
<serviceTask id="servicetask" name="Service Task"
activiti:delegateExpression="${myJavaDelegateInstance}" />
프로젝트에서 Spring을 사용합니까? – Evgeny
Activiti에 Spring을 사용하지 않습니다. – OutOfMind