公司有个业务需要使用到workflow 这东西,一直都没接触过,领导给了点时间让我先研究研究。最开始打算使用jbpm,但是后面学习下来发现貌似jbpm默认支持的hibernate,我们工程使用mybatis做持久化的。后来问朋友除了jbpm还有其他的workflow插件没。朋友说activiti挺好使的,我网上找了点资料一看确实还不错,感觉比jbpm轻量级一点,封装比jbpm也成熟很多,与spring、mybatis很好的集成到一起,所以就学习了activiti,activiti也是基于jbpm进行的处理。
1 .首先,要去官网下载activiti的插件包:
官网地址:下载activiti插件包
2.下载好插件之后,需要与eclipse或者其他IDE集成起来,我这边使用的是eclipse,具体插件安装地址自行网上查询。插件装好之后,点击eclipse window--》preferences 可以看到
3. 将activiti通过spring进行初始化,这个主要是针对spring 的 application.xml,application.xml配置文件加入下面的映射信息就可以了:
<!-- 加载activiti引擎 -->
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseSchemaUpdate" value="true" />
<property name="jobExecutorActivate" value="false" />
</bean>
<!-- activiti的各种服务接口 -->
<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="managementService" factory-bean="processEngine" factory-method="getManagementService" />
4.数据源自己配置
5.应用服务器启动之后会自动创建activiti所需要的相关表格:
6.可以写一个测试小内容:
ProcessEngine pe = ProcessEngines.getDefaultProcessEngine();
System.out.println(pe);
RepositoryService reposit = pe.getRepositoryService();
DeploymentBuilder deploy = reposit.createDeployment();
deploy.addClasspathResource("/MyProcess.bpmn");
deploy.deploy();
RuntimeService runtimeService = pe.getRuntimeService();
runtimeService.startProcessInstanceByKey("scripttask1");//启动流程,ID必须与你配置的一致
System.out.println("ok......");
运行输出:
test
ok......
我也在学习中,有不对的地方还望各位大哥指导一哈~