【原创】SSM框架下,添加activiti流程引擎配置--转载请注明出处
来源:互联网 发布:java孤傲苍狼 博客园 编辑:程序博客网 时间:2024/05/16 02:20
1.Activiti简介
Activiti是一款基于bpmn2.0标准所开发的流程引擎,该引擎可以对bpmn20.xml和bpmn文件进行解析,按照设计的所预先设计出的流程图来进行流程流转的工作流引擎。目前在市场上的大部分OA系统工作流都是基于该框架进行开发的。2.Activiti的jar包支持
在这里我们使用的是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
- 【原创】SSM框架下,添加activiti流程引擎配置--转载请注明出处
- Apache2.4权限配置(原创帖-转载请注明出处)
- 尊重原创,转载请注明出处
- 转载请注明出处
- 【原创】无缓存数据库下,部门树结构处理--转载请注明出处
- 【原创】在java下实现的平衡二叉树--转载请注明出处
- 关于原始输入--XP新技术(原创,转载请注明出处)
- [原创]WCF入门级使用教程(转载请注明出处)
- S3C2450自动升级[原创作品,转载请注明出处]
- S3C2450自动升级[原创作品,转载请注明出处]
- Discuz的安装 (原创帖,转载请注明出处)
- LAMP环境搭建 (原创帖,转载请注明出处)
- 查看/关闭SElinux (原创帖,转载请注明出处)
- 文章为原创,转载请注明出处,欢迎评论。
- 【原创,转载注明出处】Android SD卡排错
- PAGE_ALIGN 详解 纯属原创 转载注明出处
- Vista中服务运行与NT5的差别(原创,转载请注明出处)
- Core Aduio API--Vista中音量控制的新特点(原创,转载请注明出处)
- windows下多python版本下的一个pip错误
- js中几种实用的跨域方法原理详解
- Sftp和ftp over ssh2的区别
- hive的简单增删改查
- jni和C 中文乱码
- 【原创】SSM框架下,添加activiti流程引擎配置--转载请注明出处
- 写作建议
- 主键&外键
- Inventor API:后绑定访问一些Inventor API对象
- C# 通过socket实现UDP 通信
- Android XML绘图之 Selector
- c++-08
- 在Android中去掉标题栏
- 2017最佳编程语言TOP10