Activiti整合到springMVC项目的详细配置

注:本次教程全部在Activiti-5.16.4版本下测试通过
首先需要配置好springMVC的项目,这里就不再赘述,(有时间也会写一个springMVC简单教程),即在springMVC原有项目上添加Activiti工作流配置。

一、添加所需jar包

从官网上下载对应的版本,在里面找到Activiti所需jar包,这里我添加了Activiti提供的11个jar,分别为:

activiti-bpmn-converter-5.16.4.jar
activiti-bpmn-layout-5.16.4.jar
activiti-bpmn-model-5.16.4.jar
activiti-common-rest-5.16.4.jar
activiti-engine-5.16.4.jar
activiti-image-generator-5.16.4.jar
activiti-json-converter-5.16.4.jar
activiti-process-validation-5.16.4.jar
activiti-rest-5.16.4.jar
activiti-simple-workflow-5.16.4.jar
activiti-spring-5.16.4.jar

同时也需要如下5个jar包,

mybatis-3.2.5.jar
slf4j-api-1.7.6.jar
slf4j-log4j12-1.7.6.jar
commons-lang3-3.3.2.jar
joda-time-2.1.jar

全部拷贝到WEB-INF/lib目录下即可。

二、添加spring配置信息

在WEB-INF/applicationContext.xml配置文件中,添加如下代码:

<!-- spring负责创建流程引擎的配置文件 -->
    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
           <!-- 数据源 -->
        <property name="dataSource" ref="dataSource2" />
        <!-- 配置事务管理器,统一事务 -->
        <property name="transactionManager" ref="transactionManager" />
        <!-- 设置建表策略,如果没有表,自动创建表 -->
        <property name="databaseSchemaUpdate" value="true" />
        <!-- 是否启动jobExecutor --> 
        <!-- <property name="jobExecutorActivate"value="false" /> -->
    </bean>

    <!-- 创建流程引擎对象 -->
    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration" ref="processEngineConfiguration" />
    </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" />
    <bean id="formService" factory-bean="processEngine" factory-method="getFormService" />
    <!-- 工作流唯一服务 -->
    <!-- <bean id="IdentityService"factory-bean="processEngine"factory-method="getIdentityService"/> -->

解释:
其中dataSource2为activiti数据库(将在第三步详细介绍),建议单独管理,这样可以避免跟业务数据库中数据产生冲突,也方便流程数据的管理,只需再定义一个新的数据源即可,如下:

<bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/activiti?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull&amp;transformedBitIsBoolean=true"></property>
        <property name="username" value="root"></property>
        <property name="password" value=""></property> 
    </bean>

其中transactionManager为spring统一事务管理,如果你使用的是Hibernate,定义如下:

<bean id="transactionManager"   class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
</bean>

如果使用的是spring-jpa,定义如下:

<bean id="transactionManager" 
class="org.springframework.orm.jpa.JpaTransactionManager">  
        <property name="entityManagerFactory" 
ref="entityManagerFactory" />  
</bean>

三、创建activiti数据库

从官网下载并解压的文件中找到database文件下的各类数据库脚本,这里用的是mysql数据库,所以把其中mysql的脚本拷贝出来,新建一个mysql数据库,名为activiti,分别运行

activiti.mysql.create.engine.sql
activiti.mysql.create.identity.sql
activiti.mysql.create.history.sql

这三个sql脚本,它们分别创建了12张、4张、8张表,共24张表格,请核对是否全部创建成功。
注:可能是因为mysql版本或者其它原因,创建datetime格式的字段时不能有长度定义,所以需要把上述三个sql脚本中的datetime(3)改为datetime,另外把activiti.mysql.create.engine.sql中的CURRENT_TIMESTAMP(3)改为CURRENT_TIMESTAMP

四、单元测试

public static void main(String[] args) {
        // 1.创建Activiti配置对象的实例
        ProcessEngineConfiguration configuration = ProcessEngineConfiguration
                .createStandaloneProcessEngineConfiguration();
        // 2.设置数据库连接信息

        // 设置数据库地址
        configuration
                .setJdbcUrl("jdbc:mysql://localhost:3306/activiti?createDatabaseIfNotExist&amp;useUnicode=true&amp;characterEncoding=utf8");
        // 数据库驱动
        configuration.setJdbcDriver("com.mysql.jdbc.Driver");
        // 用户名
        configuration.setJdbcUsername("root");
        // 密码
        configuration.setJdbcPassword("");

        // 设置数据库建表策略
        /**
         * DB_SCHEMA_UPDATE_TRUE:如果不存在表就创建表,存在就直接使用
         * DB_SCHEMA_UPDATE_FALSE:如果不存在表就抛出异常
         * DB_SCHEMA_UPDATE_CREATE_DROP:每次都先删除表,再创建新的表
         */
        configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

        // 3.使用配置对象创建流程引擎实例(检查数据库连接等环境信息是否正确)
        ProcessEngine processEngine = configuration.buildProcessEngine();

        System.out.println(processEngine);
    }

运行无异常即说明Activiti已整合到springMVC中。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值