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

来源:互联网 发布:java孤傲苍狼 博客园 编辑:程序博客网 时间:2024/05/16 02:20

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对象,那么就在项目的运行过程中进行创建即可。但不推荐。
阅读全文
1 0
原创粉丝点击