在Camunda中,使用表达式委托是否比使用Java类有优势?
在Camunda中,使用表达式委托是否比使用Java类有优势?
我所能想象使用表达式委托而不是Java类的唯一理由是,每当我的自定义代码类需要使用依赖注入从Spring beans中加载时,特别是在您想要通过应用程序控制委托实例的生命周期而不是Camunda运行时引擎时。
简单地说,通过使用表达式委托,我们可以像希望的那样使用Spring DI初始化委托类,而不让Camunda引擎对其进行初始化。并且可以利用DI的所有优势。
场景是,我们希望从Spring beans加载委托类,在其中运行我们的委托代码之前需要注入运行时依赖项。因此,我们可以使用Spring beans初始化其他对象依赖项,并创建一个引用委托类并注入其他已初始化的beans的bean。例如:
<serviceTask id="paymentTask" camunda:delegateExpression="${myPaymentBean}" />
在上述代码中,myPaymentBean
是由Spring解析的实例,并且它将是已通过依赖注入(DI)初始化所需依赖项的JavaDelegate
实例。我们使用了DI,因为我们的业务逻辑需要在进入生产之前进行彻底测试,并且更容易编写自动化测试。