- 为什么要整合数据库
如果不整合数据库,我们大可以使用Quartz这些框架来做流程任务。实际上,Work Flow是用于一种长周期的、几乎异步的项目运行环境中,并且我们时刻需要将工作流程的状态记录下来,就是一种既注重结果,又注重过程的事务中,因此,整合数据库很有必要。
- ProcessEngineConfigurationImpl基类
Activiti整合数据库的类是基于ProcessEngineConfigurationImpl抽象类实现的,子类通过实现其createTransactionInterceptor()方法以适应不同环境,其功能是提供事务拦截。activiti默认提供三个实现类,如图
- StandaloneProcessEngineConfiguration不支持第三方事务管理器,Activiti会自己处理事务。
public class StandaloneProcessEngineConfiguration extends ProcessEngineConfigurationImpl {
protected CommandInterceptor createTransactionInterceptor() {
return null;
}
}
- JtaProcessEngineConfiguration:一般为分布式事务控制服务,单独运行流程引擎,并使用JTA事务。
- SpringProcessEngineConfiguration: 在Spring环境下使用流程引擎。
- -