activiti工作流可以用来开发OA系统的审批功能,比如请假审批,财务审批,公告审批等等审批功能,下面我将在ssm框架中(spring+springmvc+mybatis)整合我们的activiti工作流框架。
首先在maven项目的pom.xml文件中引入activiti工作流的jar包:
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>5.22.0</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>5.22.0</version> </dependency>
我们接着创建一个spring-activiti.xml的文件,用来注入spring的6个service服务,方便我们日后在controller层或者service层中注入这些service,配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <!-- 配置流程引擎配置信息对象 --> <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration" p:dataSource-ref="dataSource" p:transactionManager-ref="transactionManager" p:databaseSchemaUpdate="true" p:jobExecutorActivate="false" p:databaseType="oracle" p:activityFontName="宋体" p:labelFontName="黑体" p:xmlEncoding="utf-8"/> <!-- 配置流程引擎 --> <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean" p:processEngineConfiguration-ref="processEngineConfiguration"/> <!-- 配置六个服务Bean --> <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" /> <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" /> </beans>
上面的activiti文件配置好之后我们在spring-context.xml文件中引用我们的activiti整合文件:
<import resource="spring-activiti.xml"/>
当activiti框架的jar包都下载完毕之后,我们就可以创建activiti项目所需要的数据表了,我们先来写一个测试类,用来生成数据表,本人用的是oracle数据库,所以jdbc驱动JdbcDriver是oracle数据库所需要的驱动。
import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngineConfiguration; /** * 创建数据库表 * @author JIAN WANG * @email wjycgl@163.com * @date 2016年11月7日 上午10:35:40 * @version 1.0 */ public class CreateDatabaseTest { public static void main(String[] args) { // 创建流程引擎配置信息对象 ProcessEngineConfiguration pec = ProcessEngineConfiguration .createStandaloneProcessEngineConfiguration(); // 设置数据库的类型 pec.setDatabaseType("oracle"); // 设置创建数据库的方式 // ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE(true): 如果没有数据库表就会创建数据库表,有的话就修改表结构. // ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE(false): 不会创建数据库表 // ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP(create-drop): 先创建、再删除. pec.setDatabaseSchemaUpdate("true"); // 设置数据库驱动 pec.setJdbcDriver("oracle.jdbc.OracleDriver"); // 设置jdbcURL pec.setJdbcUrl("jdbc:oracle:thin:@//218.16.125.265:2008/baruser"); // 设置用户名 pec.setJdbcUsername("dengnew"); // 设置密码 pec.setJdbcPassword("dengxxxx"); // 构建流程引擎对象 ProcessEngine pe = pec.buildProcessEngine(); // 调用访方法才会创建数据表 // 调用close方法时,才会删除 pe.close(); } }
通过以上几个步骤,我们ssm框架整合activiti工作流项目就完全整合好了,下一期将教会你如何使用activiti框架。