【原创】SSM框架下,添加activiti流程引擎配置--转载请注明出处

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/qq_35427785/article/details/72961221

1.Activiti简介

Activiti是一款基于bpmn2.0标准所开发的流程引擎,该引擎可以对bpmn20.xml和bpmn文件进行解析,按照设计的所预先设计出的流程图来进行流程流转的工作流引擎。目前在市场上的大部分OA系统工作流都是基于该框架进行开发的。

2.Activitijar包支持

在这里我们使用的是5.19.0.3的Activiti版本。

如果需要下载jar包,可以前往仓库所在地址,根据maven地址进行寻找,里面有相应的jar包。

            <!-- 添加Activiti支持 -->
	<dependency>
	        <groupId>org.activiti</groupId>
	        <artifactId>activiti-engine</artifactId>
	        <version>5.19.0.2</version>
	    </dependency>
	    <dependency>
	        <groupId>org.activiti</groupId>
	        <artifactId>activiti-spring</artifactId>
	        <version>5.19.0.2</version>
	    </dependency>
	    <dependency>
	        <groupId>org.activiti</groupId>
	        <artifactId>activiti-bpmn-model</artifactId>
	        <version>5.19.0.2</version>
	    </dependency>
	    <dependency>
		    <groupId>org.activiti</groupId>
		    <artifactId>activiti-spring</artifactId>
		    <version>5.19.0.3</version>
		</dependency>

3.配置文件


在使用Activiti时,需要先对Activiti的processEngineConfiguration对象进行配置。下方配置文件已经被引入了Spring.xml中。
 
<!-- 导入activiti配置文件 -->
 <import resource="activiti.cfg.xml"/>

先贴上配置文件activiti.cfg.xml,然后对这些文件配置进行分析。
<?xml version="1.0" encoding="UTF-8"?>


<beans xmlns="http://www.springframework.org/schema/beans"
	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">


	<!-- 流程引擎的配置bean -->
	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
		<property name="dataSource" ref="dataSource" />
		<property name="databaseSchemaUpdate" value="true" />
		<property name="transactionManager" ref="transactionManager" />
	</bean>


	<!-- 流程引擎的bean -->
	<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
		<property name="processEngineConfiguration" ref="processEngineConfiguration" />
	</bean>
	
	<!-- 服务组件的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="managementService" factory-bean="processEngine"
		factory-method="getManagementService" />
</beans>

<!-- 配置mybatis 连接池 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${MysqlDriverClass}" />
        <property name="url" value="${MySqlJdbcUrl}" />
        <property name="username" value="${MySqlUser}" />
        <property name="password" value="${MySqlPassword}" />
        <property name="initialSize" value="${initialSize}" />
        <property name="maxActive" value="${maxActive}" />
        <property name="maxIdle" value="${maxIdle}" />
        <property name="minIdle" value="${minIdle}" />
    </bean>




Activiti流程引擎的配置分为三个部分。
第一部分:配置processEngineConfiguration
dataSource 配置,设置activiti的数据源,在这里由于我们的项目中只有一个数据库,因此,只需要将dataSource 设定为mybatis所使用的连接池即可,我们在这里所使用的连接池为dbcp连接池。补上dbcp连接池的配置。
databaseSchemaUpdate配置,该配置决定了activiti是否会在启动时,自动去创建activiti的依赖数据库表。如果值为true,则会在启动时检查数据库表的创建。如果创建了,则不进行操作,如果没有创建,则创建数据库表;如果值为false,则会在启动时检测表结构,如果表不存在,则抛出异常;如果值为create-drop,则会在启动时创建数据库表,如果数据库表已经创建,则会抛出异常;如果值为drop-create,则会在启动时删除已有的数据库表,然后重新创建。
一般在开发时,建议使用的是true,而在给客户进行使用时,则首次启动时为create-drop,再次启动时,使用false。
transactionManager配置,该配置处设配置的为activiti所使用的事务管理器,与dataSource 相同,均使用mybatis所使用的事务管理。
第二部分:流程引擎
在此处将配置好的流程引擎配置注入到流程引擎中。
第三部分:常用的activitiService对象
这些service对象在使用时,为了方便,均采用了直接注入的方式进行处理,这样以后就不需要再对processEngin进行管理,也不需要再对service的对象进行逐一的创建。
如果不配置流程引擎与service对象,那么就在项目的运行过程中进行创建即可。但不推荐。

猜你喜欢

转载自blog.csdn.net/qq_35427785/article/details/72961221