说到工作流,我们肯定第一时间想到的是JBPM和Activity,
JBPM是使用Hibernate来管理数据库的,而Activity则是
比较开放的贴近Mybatis的风格。而现在SSH框架用的也是
越来越少了,所以Activity取代JBPM也是不远的事。
Activity的github地址:https://github.com/Activiti
一、导入依赖
这里使用的是Activity的5.15.1版本
<!--activity工作流依赖-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>5.15.1</version>
</dependency>
<!-- activiti 与 Spring 集成 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.15.1</version>
</dependency>
二、创建流程图
idea里面有流程图的插件:ActBPM
File->Settings->Plugins->搜索 ActBPM ->install
三、Spring与Activity整合
嗯,接下来和spring的整合 上面注释应该很详细了
<bean class="org.activiti.spring.SpringProcessEngineConfiguration" id="processEngineConfiguration">
<!--配置数据源-->
<property name="dataSource" ref="dataSource"/>
<!--数据库表更新,若数据库中不存在表,则自动创建-->
<property name="databaseSchemaUpdate" value="true"/>
<!--定时工作流-->
<property name="jobExecutorActivate" value="false"/>
<!--事务管理-->
<property name="transactionManager" ref="txManager"/>
<!--解决乱码-->
<property name="activityFontName" value="宋体"/>
<property name="labelFontName" value="宋体"/>
<!--部署流程图-->
<property name="deploymentResources">
<list>
<value>classpath:workflow/*.bmpn</value>
</list>
</property>
</bean>
<bean class="org.activiti.spring.ProcessEngineFactoryBean" id="processEngine">
<property name="processEngineConfiguration" ref="processEngineConfiguration"/>
</bean>
<!--调用processEngin中的方法 对7个服务进行注入 在service层中直接自动注入即可-->
<!--任务服务-->
<bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"></bean>
<!--表单服务-->
<bean id="formService" factory-bean="processEngine" factory-method="getFormService"></bean>
<!--历史数据服务-->
<bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"></bean>
<!--身份认证服务-->
<bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"></bean>
<!--数据存储服务-->
<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"></bean>
<!--管理服务-->
<bean id="managementService" factory-bean="processEngine" factory-method="getManagementService"></bean>
<!--运行时服务-->
<bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService"></bean>
四、小demo
接下来把controller层代码写下 service层调上面注入的bean的方法,写一堆对应你业务逻辑的东西就ok了。
小demo有没有你心里没点逼数吗?ヽ(°◇° )ノ