camunda流程引擎集成
首先通过ProcessEngineConfiguration来配置流程引擎并启动
ProcessEngineConfiguration分为三种:
- JtaProcessEngineConfiguration:支持流程事务与框架事务整合的配置。
- StandaloneProcessEngineConfiguration:标准配置,可能有些功能会确实。
- SpringProcessEngineConfiguration:和Spring整合,使用了Spring框架的可以优先选择
ProcessEngineConfiguration主要的配置项有
-
configuration.setIdGenerator(idGenerator)
使用 UUID 生成主键 -
configuration.setDataSource(dataSource)
设置数据源(用于保存流程的表结构和数据),当然如果有多数据源,最好jta事务管理多数据源事务
如果流程中调用系统服务时出错保证事务回滚. -
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE)
设置流程引擎数据库生成表策略,我使用的是每次启动自动更新表结构,生产环境初始化一次就可关闭此选项了 -
configuration.setCustomFormTypes(formFieldTypes)
设置流程引擎自定义表单类型,类型需要实现 FormType 接口,后续会说一下如何完成添加自定义表单类型,camunda 有个依赖 camunda-common-typed-values jar包内有一些表单类型可用,但是业务系统所需要的表单类型远不止这些,需要更多的自定义类型支持工作流引擎 -
configuration.setCustomPreVariableSerializers(typeValueSerializers)
设置自定义字段解析器, 流程自定义表单类型需要配合类型解析器来工作,解析器内定义如果将你的自定义类型保存到数据表 variables ,和如果从数据表取出来变成自定义类型. -
configuration.setClassLoader(classLoader)
设置类加载器, 如果需要使用scriptTask groovy 脚本等,需要使用当前类加载器 -
configuration.setTransactionManager(getTransactionManager())
设置事务管理器,springboot 的configuration 好像有个属性直接集成事务管理器了 -
configuration.setEnableFetchScriptEngineFromProcessApplication(true)
设置脚本执行上下文,主要是使用 serviceTask 或者scriptTask 时有用 -
processEngine = configuration.buildProcessEngine()
启动工作流,并且初始化流程引擎,流程引擎是camunda 各种service 的入口了, 熟悉activitie 的这里应该很熟,基本activiti系列的工作流都是这么搞.