Activiti5与SSH的整合笔记

1.最近要做一个OA 系统,需要用到Activiti工作流

首先搭建一个SSH的基本框架,然后在参看了Kafeitu的demo之后在lib下加入如下jar包

然后在applicationContext.xml里面加入如下代码,将Activiti的ProcessEngine交给Spring管理

<!-- 创建一个流程引擎的配置对象你不用管这个是什么意思 这个是死的这就是配置这个就是所谓activiti的引擎 现在你已经制造他了 -->
	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
		<!--这里是数据源的指定 指向你自己的dataSource -->
		<property name="dataSource" ref="dataSource" />
		<property name="transactionManager" ref="transactionManager" />
		<!-- 设置数据库schema的更新方式 -->
		<property name="databaseSchemaUpdate" value="true" />
		<!-- 是否启动jobExecutor -->
		<property name="jobExecutorActivate" value="false" />

		<!-- 自动部署就是自己自动部署流程 意思就是 我本来没流程啊 怎么多出来的流程 就是在这里 自动部署的,流程只有部署了 用户才可以走这个流程 -->
		<property name="deploymentResources">
			<list>
				<value>classpath*:/deployments/*</value>
			</list>
		</property>
		<!-- 自定义表单字段类型 这个很重要 很重要 你不用明白他是什么意思 他就是必须的 自己在自己的项目里加上这个类然后指向他 -->
		<property name="customFormTypes">
			<list>
				<bean class="com.activi.UserFormType" />
			</list>
		</property>
	</bean>

	<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
		<property name="processEngineConfiguration" ref="processEngineConfiguration" />
	</bean>
	
	<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"/>
    <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService"/>
    <bean id="formService" factory-bean="processEngine" factory-method="getFormService"/>
    <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"/>
    <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"/>

为processEngingeConfiguration配置transactionManger

<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>

写一个UserFormType类

package com.activi;

import org.activiti.engine.form.AbstractFormType;

public class UserFormType extends AbstractFormType{

	@Override
	public String getName() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Object convertFormValueToModelValue(String arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String convertModelValueToFormValue(Object arg0) {
		// TODO Auto-generated method stub
		return null;
	}

}

加入测试方法(方法用于测试流程引擎是不是可以正常使用)

推荐交给Spring管理的类使用@Autowire来注入

package test.service.activiti;

import static org.junit.Assert.assertNotNull;

import org.activiti.engine.FormService;
import org.activiti.engine.HistoryService;
import org.activiti.engine.IdentityService;
import org.activiti.engine.ManagementService;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import test.TestSupport;

public class ActivitiInitTest extends TestSupport{
	
	@Autowired
	private RepositoryService repositoryService;

	@Autowired
	private RuntimeService runtimeService;

	@Autowired
	private FormService formService;

	@Autowired
	private IdentityService identityService;

	@Autowired
	private TaskService taskService;

	@Autowired
	private HistoryService historyService;

	@Autowired
	private ManagementService managementService;

	/**
	 * 检测引擎是否能正常工作
	 */
	@Test
	public void testProcessEngines() {
		assertNotNull(repositoryService);
		assertNotNull(runtimeService);
		assertNotNull(formService);
		assertNotNull(identityService);
		assertNotNull(taskService);
		assertNotNull(historyService);
		assertNotNull(managementService);
	}
	
}
我们发现有如下报错

错误显示的是项目中没有引入ibatis的相应jar包,因为Activiti是以ibatis作为数据持久层框架的,接下来引入mybatis.jar

继续测试,报错

显示的是我们没有joda的jar包,添加joda-time.jar

继续测试,然后我们终于能够得到Activiti提供的引擎以及相应的方法了




评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值