首相来一个Java工程项目的目录结构
一:创建配置文件activiti.cfg.xml 存放在项目路径下resource目录,在数据库中建立相应的数据库act
<?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.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/act" />
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="mysql" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
二:添加相关的activiti jar包和依赖包,
三:建立相关的类进行相关的运行和测试
import org.activiti.engine.HistoryService;
import org.activiti.engine.IdentityService;import org.activiti.engine.ManagementService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
/**
* 第一个流程运行类
* @author caowh
* E-mail: 458584881@qq.com
* @date 创建时间:2017年4月28日 下午2:14:44
*/
public class First {
public static void main(String[] args) {
// 创建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 得到流程存储服务组件
RepositoryService repositoryService = engine.getRepositoryService();
// 得到运行时服务组件
RuntimeService runtimeService = engine.getRuntimeService();
// 获取流程任务组件
TaskService taskService = engine.getTaskService();
//对流程管理与服务组件
ManagementService managementService = engine.getManagementService();
//获取对角色管理的服务
IdentityService identityService = engine.getIdentityService();
// 获取历史服务组件
HistoryService historyService = engine.getHistoryService();
// 部署流程文件
repositoryService.createDeployment().addClasspathResource("bpmn/First.bpmn").deploy();
// 启动流程 通过流程图的id
runtimeService.startProcessInstanceByKey("process1");
// 查询第一个任务
Task task = taskService.createTaskQuery().singleResult();
System.out.println("第一个任务完成前,当前任务名称:" + task.getName());
// 完成第一个任务
taskService.complete(task.getId());
// 查询第二个任务
task = taskService.createTaskQuery().singleResult();
System.out.println("第二个任务完成前,当前任务名称:" + task.getName());
// 完成第二个任务(流程结束)
taskService.complete(task.getId());
System.out.println("流程结束后,查找任务:" + task);
}
}
四:数据库中会生成相应的数据库表信息和数据,其实工作流的就是对生成相应表的操作,每个服务对象有相应的方法操作,但是相应方法都有一定的规律,基本都是相应的增删改查
本文介绍如何使用Activiti搭建工作流应用,包括配置文件activiti.cfg.xml的设置、相关jar包引入、流程运行测试类编写及数据库表生成原理。
1万+

被折叠的 条评论
为什么被折叠?



