春天和activiti进行整合过程解析

  

<强>一、整合原理
  

  

activiti的配置文件本身就是一个春天的配置文件,但默认情况下只讲ProcessEngineConfiguration作为一个bean来使用,调用ProcessEngines.getDefaultProcessEngine()加载的就是配置文件中的这个豆,和春天整合后就可以把bean的管理让春天来进行,在代码中获取任意的bean。

  

activiti提供了一个弹簧模块,在一个春天的工程中引入这个模块就能够整合

        & lt; dependency>   & lt; groupId> org.activiti   & lt; artifactId> activiti-spring   & lt; version> 5.22.0   & lt;/dependency>      

并且引入这个依赖后就不需要再单独引入activiti的依赖了,这里边已经包含了

  

<强>二,整合步骤
  

  

2.1新建一个maven工程并导入相关依赖
  

        & lt; dependencies>   & lt; !——春——比;   & lt; dependency>   & lt; groupId> org.springframework   & lt; artifactId> spring-context   & lt; version> 5.0.2.RELEASE   & lt;/dependency>      & lt; dependency>   & lt; groupId> org.activiti   & lt; artifactId> activiti-spring   & lt; version> 5.22.0   & lt;/dependency>      & lt; dependency>   & lt; groupId> mysql   & lt; artifactId> mysql-connector-java   & lt; version> 5.1.26   & lt;/dependency>      & lt; dependency>   & lt; groupId> c3p0   & lt; artifactId> c3p0   & lt; version> 0.9.1.2   & lt; type> jar   & lt; scope> compile   & lt;/dependency>      & lt; dependency>   & lt; groupId> commons-io   & lt; artifactId> commons-io   & lt; version> 2.4 & lt;/version>   & lt;/dependency>      & lt; dependency>   & lt; groupId> junit   & lt; artifactId> junit   & lt; version> 4.12 & lt;/version>   & lt;/dependency>   & lt;/dependencies>      

这里导入了春天,activiti,数据库驱动等依赖。

  

2.2创建春配置文件
  

  

在资源目录下创建春配置文件,中,其中主要配置如下豆

  

(1)数据源(连接池)

  

(2)事务管理器(和spring整合后必须配置事务管理器)

  

(3)流程引擎配置对象,这里可以注入一些流程引擎的配置

  

(4)流程引擎对象

  

(5) activiti的服务组件,配置后在程序中可以直接从容器中获取

  

完整的配置文件如下

        & lt;豆类xmlns=" http://www.springframework.org/schema/beans "   xmlns:上下文=" http://www.springframework.org/schema/context "   xmlns: tx=" http://www.springframework.org/schema/tx "   xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "   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-2.5.xsd   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd”比;         & lt; !——配置连接池——比;   & lt; bean id=笆菰础崩?癱om.mchange.v2.c3p0.ComboPooledDataSource”比;   & lt;属性名=" driverClass " value=" https://www.yisu.com/zixun/com.mysql.jdbc.Driver "/比;   & lt;属性名=" jdbcUrl " value=" https://www.yisu.com/zixun/jdbc mysql://localhost: 3306/activiti_01”/比;   & lt;属性名="用户" value=" https://www.yisu.com/zixun/root "/比;   & lt;属性名="密码" value=" https://www.yisu.com/zixun/root "/比;   & lt;/bean>      & lt; !——事务管理器——比;   & lt; bean id=皌ransactionManager”类=皁rg.springframework.jdbc.datasource.DataSourceTransactionManager”比;   & lt;属性名=笆菰础眗ef=笆菰础弊4? lt;/property>   & lt;/bean>      & lt; !——配置使用弹簧提供的的流程引擎配置对象——比;   & lt; bean id=" processEngineConfiguration "   类=皁rg.activiti.spring.SpringProcessEngineConfiguration”比;   & lt;属性名=笆菰础眗ef=笆菰础弊4? lt;/property>   & lt;属性名=" transactionManager“ref=皌ransactionManager祝辞& lt;/property>   & lt;属性名=" databaseSchemaUpdate " value=" https://www.yisu.com/zixun/true "祝辞& lt;/property>   & lt;属性名=" deploymentResources " value=" https://www.yisu.com/zixun/classpath *:/过程/* .bpmn”祝辞& lt;/property>   & lt;/bean>      & lt; !——配置流程引擎工厂bean,获取这个bean就可以直接获取到流程引擎对象——比;   & lt; !——注意这个不是使用静态工厂来获取bean——比;   & lt; bean id=皃rocessEngine”类=皁rg.activiti.spring.ProcessEngineFactoryBean”比;   & lt;属性名=" processEngineConfiguration“ref=皃rocessEngineConfiguration祝辞& lt;/property>   & lt;/bean>      & lt; !——配置activiti的服务组件——比;   & lt; !——这里是通过实例工厂来创建服务组件的对象   ProcessEngine类的父类EngineServices中有获取服务组件的得到的方法,所以这里把ProcessEngine当做实例工厂来使用,   而这几个对象是在创建流程引擎配置对象时就新出的来的   ——比;   & lt; bean id=" repositoryService " factory-bean=皃rocessEngine工厂方法”=癵etRepositoryService”比;   & lt;/bean>   & lt; bean id=" runtimeService " factory-bean=皃rocessEngine工厂方法”=癵etRuntimeService”比;   & lt;/bean>   & lt; bean id=" taskService " factory-bean=皃rocessEngine工厂方法”=癵etTaskService”比;   & lt;/bean>   & lt; bean id=" historyService " factory-bean=皃rocessEngine工厂方法”=癵etHistoryService”比;   & lt;/bean>      & lt;/beans>

春天和activiti进行整合过程解析