前面记录过spring与activiti的快速整合,这里再补充一点点:
1 引擎配置:
先看之前的关键配置:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource"></property>
<property name="transactionManager" ref="txManager"></property>
</bean>
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration"></property>
</bean>
首先,与spring整合使用,那么,activiti对数据表的操作事务必然交由spring统一管理,因此需要使用spring提供的流程引擎配置对象,为activiti配置参数,先看一下这个类所在的位置以及这个类中的内容:
看到这里基本就明了,dataSourse与transactionManager这两个参数的注入切入点了,将spring管理的数据源与事务管理器与activiti需要使用的数据源和事务管理器统一起来,当然在第三方数据源中的数据库属性配置在activiti内是依然生效的。
除此之外,databaseSchemaUpdate属性,在前文中也有过解释,需要理解的是,在设置建表策略下,不同的数据库是有不同的sql指令的,activiti可通过数据源配置,获取到connection,然后识别不同的数据库,如果配置databaseType,则可以直接准确适配数据库类型。
2 流程部署
纯从使用的角度而言,当activiti引擎配置到spring容器中时,则无需再关心引擎的创建问题,根据不同情形,直接部署流程文件即可使用,首先看一个接口:
流程部署的切入点,该接口仅有一个实现类
org.activiti.engine.impl.repository.DeploymentBuilderImpl
从接口方法中可见,流程资源的部署可以是加载类路径下的资源文件,可以根据字符串路径加载资源文件,可以加载输入流中的文件和加载压缩包文件资源,具体使用方式根据需求场景选择,这里不再赘述。