activiti学习-02环境准备+安装流程设计器+对流程设计器的使用+对流程设计器的使用+核心API的认识
2017-09-05 14:44
771 查看
1环境
JDK1.6或者更高版本(我的配置是1.7)
支持的数据库有:h2, mysql, oracle, postgres, mssql, db2等。(我的配置是mysql5.7.19)
支持activiti5运行的jar包
开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本(我的配置是Mars.1 Release (4.5.1))
2安装流程设计器(eclipse插件)
http://blog.csdn.net/zhou920786312/article/details/77847972
3对流程设计器的使用
保存diagram时候自动生成图片
4初始化数据库
方式1
数据库自动生成的表
方式2
activiti.cfg.xml
自动生成的表
核心API的认识
ProcessEngine 总路口
RepositoryService 管理流程定义
RuntimeService 执行管理,包括启动、推进、删除流程实例等操作
TaskService 任务管理
HistoryService 历史管理(执行完的数据的管理)
IdentityService 组织机构管理
FormService 一个可选服务,任务表单管理
ManagerService
ProcessDefinition 流程定义类。可以从这里获得资源文件等。
ProcessInstance:
代表流程定义的执行实例。如小黄请了一天的假,就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。
Execution:
Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution等同ProcessInstance。流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution。
一个流程中,执行对象可以存在多个,但是流程实例只能有一个。
当流程按照规则只执行一次的时候,那么流程实例就是执行对象。
源码分析:
在单线流程中,如上图的贷款流程,ProcessInstance与Execution是一致的,如下图所示
多流程中,如wire money(汇钱)和archive(存档)是并发执行的。 这个时候,总线路代表ProcessInstance,而分线路中每个活动代表Execution。
JDK1.6或者更高版本(我的配置是1.7)
支持的数据库有:h2, mysql, oracle, postgres, mssql, db2等。(我的配置是mysql5.7.19)
支持activiti5运行的jar包
开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本(我的配置是Mars.1 Release (4.5.1))
2安装流程设计器(eclipse插件)
http://blog.csdn.net/zhou920786312/article/details/77847972
3对流程设计器的使用
保存diagram时候自动生成图片
4初始化数据库
方式1
@Test public void createTable(){ ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration(); //连接数据库的配置 processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver"); processEngineConfiguration.setJdbcUrl("jdbc:mysql://110.110.1.211:3306/test2?useUnicode=true&characterEncoding=utf8"); processEngineConfiguration.setJdbcUsername("root"); processEngineConfiguration.setJdbcPassword("root"); /** public static final String DB_SCHEMA_UPDATE_FALSE = "false";不能自动创建表,需要表存在 public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先删除表再创建表 public static final String DB_SCHEMA_UPDATE_TRUE = "true";如果表不存在,自动创建表 */ processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); //工作流的核心对象,ProcessEnginee对象 ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine(); System.out.println("processEngine:"+processEngine); } 输出: 02:07:39,826 [main] INFO org.activiti.engine.impl.db.DbSqlSession - performing create on engine with resource org/activiti/db/create/activiti.mysql.create.engine.sql 02:07:40,658 [main] INFO org.activiti.engine.impl.db.DbSqlSession - performing create on history with resource org/activiti/db/create/activiti.mysql.create.history.sql 02:07:40,879 [main] INFO org.activiti.engine.impl.db.DbSqlSession - performing create on identity with resource org/activiti/db/create/activiti.mysql.create.identity.sql 02:07:40,940 [main] INFO org.activiti.engine.impl.ProcessEngineImpl - ProcessEngine default created processEngine:org.activiti.engine.impl.ProcessEngineImpl@1f90eeec
数据库自动生成的表
方式2
activiti.cfg.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" 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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <!-- public static ProcessEngineConfiguration createStandaloneProcessEngineConfiguration() { return new StandaloneProcessEngineConfiguration();} 这段对应下面的bean:processEngineConfiguration --> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <!-- 连接数据的配置 --> <property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property> <property name="jdbcUrl" value="jdbc:mysql://110.110.1.211:3306/test3?useUnicode=true&characterEncoding=utf8"></property> <property name="jdbcUsername" value="root"></property> <property name="jdbcPassword" value="root"></property> <!-- 没有表创建表 --> <!--processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); 这段代码对应的配置如下 --> <property name="databaseSchemaUpdate" value="true"></property> </bean> </beans>
@Test public void createTable_2(){ ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml") // .buildProcessEngine(); System.out.println("processEngine2:"+processEngine); } 输出: 02:31:09,723 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [activiti.cfg.xml] 02:31:11,189 [main] INFO org.activiti.engine.impl.db.DbSqlSession - performing create on engine with resource org/activiti/db/create/activiti.mysql.create.engine.sql 02:31:11,712 [main] INFO org.activiti.engine.impl.db.DbSqlSession - performing create on history with resource org/activiti/db/create/activiti.mysql.create.history.sql 02:31:11,851 [main] INFO org.activiti.engine.impl.db.DbSqlSession - performing create on identity with resource org/activiti/db/create/activiti.mysql.create.identity.sql 02:31:11,945 [main] INFO org.activiti.engine.impl.ProcessEngineImpl - ProcessEngine default created processEngine2:org.activiti.engine.impl.ProcessEngineImpl@5e0d095e
自动生成的表
核心API的认识
ProcessEngine 总路口
RepositoryService 管理流程定义
RuntimeService 执行管理,包括启动、推进、删除流程实例等操作
TaskService 任务管理
HistoryService 历史管理(执行完的数据的管理)
IdentityService 组织机构管理
FormService 一个可选服务,任务表单管理
ManagerService
ProcessDefinition 流程定义类。可以从这里获得资源文件等。
ProcessInstance:
代表流程定义的执行实例。如小黄请了一天的假,就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。
Execution:
Activiti用这个对象去描述流程执行的每一个节点。在没有并发的情况下,Execution等同ProcessInstance。流程按照流程定义的规则执行一次的过程,就可以表示执行对象Execution。
一个流程中,执行对象可以存在多个,但是流程实例只能有一个。
当流程按照规则只执行一次的时候,那么流程实例就是执行对象。
源码分析:
public interface ProcessInstance extends Execution {
在单线流程中,如上图的贷款流程,ProcessInstance与Execution是一致的,如下图所示
多流程中,如wire money(汇钱)和archive(存档)是并发执行的。 这个时候,总线路代表ProcessInstance,而分线路中每个活动代表Execution。
相关文章推荐
- Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
- Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
- Flask 学习篇一: 搭建Python虚拟环境,安装flask,并设计RESTful API。
- JAVAWEB开发之工作流详解(二)——Activiti核心API的使用(流程定义和流程实例的管理、流程变量、监听器...)以及与Spring的集成
- JAVAWEB开发之工作流详解(一)——Activiti的环境搭建、插件安装、核心API
- Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
- Activiti工作流引擎学习及流程设计器的安装(Eclipse插件)
- Activiti学习文档(二)之安装流程设计器
- Flask 学习篇一: 搭建Python虚拟环境,安装flask,并设计RESTful API。
- Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
- 【Activiti工作流】4.准备开发环境(配置文件)和核心api的介绍
- 开始hadoop前的准备:ubuntu学习笔记-基本环境的搭建(ssh的安装,SecureCRT连接,vim的安装及使用、jdk的安装)
- Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
- Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
- ibatis源码学习(一)整体设计和核心流程
- nginx学习之旅(一)nginx环境准备与安装
- CI框架学习笔记(一) - 环境安装、基本术语和框架流程
- 工作流Activiti的学习总结(一)安装条件以及各步骤的作用以及不同环境需要lib包
- input子系统学习笔记一 软件设计流程及相关API
- (3)OK6410学习之集成环境Eclipse安装和仿真使用