大多数项目都集成Spring网上大多数教程也是Activiti集成Spring的方法集成到项目中。
一直也没有找到如何抛离Spring使用Activiti。
一开始以为集成Activit需要大量的工作,实际上非常简单。
只需要把Activiti的Jar包和Mybatis的Jar包导入到项目中。
设置自启动Servlet在web.xml中修改如下
initActiviti
com.pansoft.jbsf.servlet.InitProcessEngine
3
initActiviti
/initActiviti
InitProcessEngine代码如下
package com.****.jbsf.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration;
import com.jf.plugin.activerecord.DbKit;
import com.****.jbsf.plugin.ActivitiPlugin;
import com.****.jbsf.util.activiti.ActivitiTransactionFactory;
public class InitProcessEngine extends HttpServlet {
private static final long serialVersionUID = 715456159702221404L;
public void init(ServletConfig config) throws ServletException {
StandaloneProcessEngineConfiguration conf = (StandaloneProcessEngineConfiguration) ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
//conf.setDatabaseSchema("root");
conf.setDataSource(DbKit.getDataSource()).setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE).setDbHistoryUsed(true);
conf.setTransactionFactory(new ActivitiTransactionFactory());
ActivitiPlugin.processEngine = conf.buildProcessEngine();
//自启动完成
//部署流程定义
ProcessEngine pe = ProcessEngines.getDefaultProcessEngine();
pe.getRepositoryService()
.createDeployment()
.name("督察催办")
.addClasspathResource("/com/pansoft/jbsf/oa/bpmn/Urge.bpmn")
.addClasspathResource("/com/pansoft/jbsf/oa/bpmn/Urge.png")
.deploy();
}
}
启动以上代码之后,数据库表将自动建立
DbKit.getDataSource()为项目中获取DataSource对象
其中new ActivitiTransactionFactory()的ActivitiTransactionFactory事务管理代码为
package com.****.jbsf.util.activiti;
import java.sql.Connection;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.ibatis.session.TransactionIsolationLevel;
import org.apache.ibatis.transaction.Transaction;