【原創】SSM框架下,添加activiti流程引擎配置--轉載請註明出處

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對象,那麼就在項目的運行過程中進行創建即可。但不推薦。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章