<强>一、整合原理强>
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进行整合过程解析