最近在做一个传统的管理项目,里面有流程模块,由于不了解翻阅大量资料最后决定使用activiti工作流引擎来做,由于首次使用,踩了无数次坑
一、项目框架整合:前人大多数使用SSH+activiti,但个人对SSM熟悉些,原先是想使用SSM+spring boot+activiti,最后决定不用spring boot了,因为是新型框架,还是怕难免出现兼容问题
二、Maven导包时
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>${activiti.version}</version>
</dependency>
<!-- <dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
<version>${activiti.version}</version>
</dependency>-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>${activiti.version}</version>
</dependency>
原先多加了activiti-bpmn-model的jar包,
在项目中暂时不需要,
在spring容器添加
<!-- activiti -->
<!-- 配置流程引擎文件 -->
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="Manager" />
<!-- 是否自动创建23张表 -->
<property name="databaseSchemaUpdate" value="true" />
</bean>
<!-- 配置创建流程引擎对象 -->
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
<!-- 提供静态方法service -->
<bean id="repositoryService" factory-bean="processEngine"
factory-method="getRepositoryService" />
<bean id="runtimeService" factory-bean="processEngine"
factory-method="getRuntimeService" />
<bean id="taskService" factory-bean="processEngine"
factory-method="getTaskService" />
<bean id="historyService" factory-bean="processEngine"
factory-method="getHistoryService" />
<bean id="formService" factory-bean="processEngine"
factory-method="getFormService" />
然后在业务层扫描调用做相关业务代码就可以了
在做这个流程图时由于习惯于Idea当初就加载了actiBPM的插件,我只能说这个插件局限性比较大,里面属性功能比eclipse的插件少,而且还要修改乱码问题和创建BPMN时报错的问题,总之问题一大推,主要是解决后在设计BPMN时总是在部署流程时出现问题,Idea插件和Eclipse插件做的图很有区别,最后还是用eclipse的插件做的图部署在Idea的项目上,感觉有点二,但喜欢在Idea上敲代码,喜欢eclipse上作图。。。。。。。
如果是简单的流程图还是可以用idea插件做的,复杂的,也别再入坑了