Activiti整合到springMVC项目的详细配置
来源:互联网 发布:访客网络影响网速吗 编辑:程序博客网 时间:2024/05/29 15:43
注:本次教程全部在Activiti-5.16.4版本下测试通过
首先需要配置好springMVC的项目,这里就不再赘述,(有时间也会写一个springMVC简单教程),即在springMVC原有项目上添加Activiti工作流配置。
一、添加所需jar包
从官网上下载对应的版本,在里面找到Activiti所需jar包,这里我添加了Activiti提供的11个jar,分别为:
activiti-bpmn-converter-5.16.4.jaractiviti-bpmn-layout-5.16.4.jaractiviti-bpmn-model-5.16.4.jaractiviti-common-rest-5.16.4.jaractiviti-engine-5.16.4.jaractiviti-image-generator-5.16.4.jaractiviti-json-converter-5.16.4.jaractiviti-process-validation-5.16.4.jaractiviti-rest-5.16.4.jaractiviti-simple-workflow-5.16.4.jaractiviti-spring-5.16.4.jar
同时也需要如下5个jar包,
mybatis-3.2.5.jarslf4j-api-1.7.6.jarslf4j-log4j12-1.7.6.jarcommons-lang3-3.3.2.jarjoda-time-2.1.jar
全部拷贝到WEB-INF/lib目录下即可。
二、添加spring配置信息
在WEB-INF/applicationContext.xml配置文件中,添加如下代码:
<!-- spring负责创建流程引擎的配置文件 --> <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> <!-- 数据源 --> <property name="dataSource" ref="dataSource2" /> <!-- 配置事务管理器,统一事务 --> <property name="transactionManager" ref="transactionManager" /> <!-- 设置建表策略,如果没有表,自动创建表 --> <property name="databaseSchemaUpdate" value="true" /> <!-- 是否启动jobExecutor --> <!-- <property name="jobExecutorActivate"value="false" /> --> </bean> <!-- 创建流程引擎对象 --> <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"> <property name="processEngineConfiguration" ref="processEngineConfiguration" /> </bean> <!-- 创建activiti提供的各种服务 --> <!-- 工作流仓储服务 --> <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" /> <bean id="formService" factory-bean="processEngine" factory-method="getFormService" /> <!-- 工作流唯一服务 --> <!-- <bean id="IdentityService"factory-bean="processEngine"factory-method="getIdentityService"/> -->
解释:
其中dataSource2为activiti数据库(将在第三步详细介绍),建议单独管理,这样可以避免跟业务数据库中数据产生冲突,也方便流程数据的管理,只需再定义一个新的数据源即可,如下:
<bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/activiti?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true"></property> <property name="username" value="root"></property> <property name="password" value=""></property> </bean>
其中transactionManager为spring统一事务管理,如果你使用的是Hibernate,定义如下:
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property></bean>
如果使用的是spring-jpa,定义如下:
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean>
三、创建activiti数据库
从官网下载并解压的文件中找到database文件下的各类数据库脚本,这里用的是mysql数据库,所以把其中mysql的脚本拷贝出来,新建一个mysql数据库,名为activiti,分别运行
activiti.mysql.create.engine.sqlactiviti.mysql.create.identity.sqlactiviti.mysql.create.history.sql
这三个sql脚本,它们分别创建了12张、4张、8张表,共24张表格,请核对是否全部创建成功。
注:可能是因为mysql版本或者其它原因,创建datetime格式的字段时不能有长度定义,所以需要把上述三个sql脚本中的datetime(3)改为datetime,另外把activiti.mysql.create.engine.sql中的CURRENT_TIMESTAMP(3)改为CURRENT_TIMESTAMP
四、单元测试
public static void main(String[] args) { // 1.创建Activiti配置对象的实例 ProcessEngineConfiguration configuration = ProcessEngineConfiguration .createStandaloneProcessEngineConfiguration(); // 2.设置数据库连接信息 // 设置数据库地址 configuration .setJdbcUrl("jdbc:mysql://localhost:3306/activiti?createDatabaseIfNotExist&useUnicode=true&characterEncoding=utf8"); // 数据库驱动 configuration.setJdbcDriver("com.mysql.jdbc.Driver"); // 用户名 configuration.setJdbcUsername("root"); // 密码 configuration.setJdbcPassword(""); // 设置数据库建表策略 /** * DB_SCHEMA_UPDATE_TRUE:如果不存在表就创建表,存在就直接使用 * DB_SCHEMA_UPDATE_FALSE:如果不存在表就抛出异常 * DB_SCHEMA_UPDATE_CREATE_DROP:每次都先删除表,再创建新的表 */ configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); // 3.使用配置对象创建流程引擎实例(检查数据库连接等环境信息是否正确) ProcessEngine processEngine = configuration.buildProcessEngine(); System.out.println(processEngine); }
运行无异常即说明Activiti已整合到springMVC中。
- Activiti整合到springMVC项目的详细配置
- Java Activiti(11)---整合到springMVC项目的详细配置
- 整合Activiti Modeler到SpringMVC
- java SpringMVC整合Freemarker的详细配置步骤
- springMVC、hibernate4及spring的整合详细配置
- Activiti学习——整合ActivitiModeler到项目中
- Activiti Modeler 5.22.0整合到Spring项目
- Activiti Modeler 5.22.0整合到Spring项目
- 关于activiti的springMVC + myBatis项目pom.xml文件的简单配置
- Spring整合activiti配置processEngine
- SpringMvc整合Activiti网页流程设计器
- 工作流Activiti和Spring的整合配置讲解
- 工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
- 工作流Activiti的学习总结(一)Spring和Activiti的整合配置讲解
- 工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
- 工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
- Activiti的表详细
- springmvc与mybatis的整合项目
- C++建立二维数组,输入计算动物园最短路径
- 开始使用虚幻4并创建一个简单的c++类
- 日期函数
- HDU1026 - Ignatius and the Princess I (广搜+优先队列)
- LeetCode_DP_Unique Binary Search Trees II
- Activiti整合到springMVC项目的详细配置
- ios开发之分享应用拓展share extension一
- Nginx.conf配置,安全优化
- Android回调接口简单理解
- C#Memory Management for Unity Developers(Part 1 of 3)
- 解决将Github上的项目导入到Android Studio中去
- Generate Parentheses
- MySQL for mac 安装
- C#Memory Management for Unity Developers (part 2 of 3)