0

我们如何使用 oracle 作为后端在 activiti 5.9 中编写带有 JPA 逻辑的 Spring bean

4

1 回答 1

0

我不确定这是否能回答你的问题,但我会试一试。你不需要做一些特别的事情来实现你的目标。将你的 processEngine 声明为一个 Spring bean,你可以在Activiti 用户指南中找到有关它的信息:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

    <property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />
    <property name="jdbcDriver" value="org.h2.Driver" />
    <property name="jdbcUsername" value="sa" />
    <property name="jdbcPassword" value="" />

    <property name="databaseSchemaUpdate" value="true" />

    <property name="jobExecutorActivate" value="false" />

    <property name="mailServerHost" value="mail.my-corp.com" /> 
    <property name="mailServerPort" value="5025" />    
  </bean>

</beans>

之后你实现你的 Spring bean,包括 JPA 逻辑。这里没有特定的 Activiti,您只需像没有 Activiti 一样实现它。您可以在此站点上找到详细信息。最后,您可以通过该方法在您的服务任务中使用此 bean :

<serviceTask id="javaService" 
         name="My Java Service Task" 
         activiti:expression="#{printer.printMessage(myVar1, myVar2)}" />

在这里,printer可以是您的 Spring bean 或只是流程上下文中的命名变量。变量myVar1myVar2是驻留在流程上下文中的变量。

您还可以通过以下方式将您的 JPA-logic-including-bean 设计为 Activiti 感知的:

 <serviceTask id="serviceTask" activiti:delegateExpression="${delegateExpressionBean}" />

在这种情况下,delegateExpressionBean是您的 JPA-logic-including-bean,但该 bean 的类必须实现 Activiti 的JavaDelegate接口。这是你的选择。

于 2013-09-23T13:00:33.010 回答