1、ProcessEngine。数据库
谈到activiti核心的API那确定是ProcessEngine类,其余全部的类都是由他而来。并发
如何建立:ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();ui
查看getDefaultProcessEngine()就能够发现activiti会默认加载classpath路径下activiti.cfg.xml文件。spa
activiti.cfg.xlm文件配置以下:orm
如上图可见此配置是jdbc配置信息,操做activiti的23张表。xml
查看org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration类可见activity默认支持h2数据库。对象
一、RepositoryService:管理流程部署及定义。资源
1)该类是activiti的仓库服务类,仓库及指流程定义文档的两个文件:.bpmn、.png文档
2)如何建立:RespositoryService respositoryService = processEngine.getRepositoryService();部署
3)该类能够建立出一个DeploymentBuilder对象,用于部署流程。Deployment deployment = respositoryService.createDeployment().deploy();
4)删除流程定义:respositoryService.deleteDeployment(deploymentId);
二、RuntimeService:执行管理,包括启动,查询,删除流程定义。
1)是activiti的流程执行服务类。能够从这个服务类中获取不少关于流程执行相关的信息。
2)如何建立:processEngine.getRuntimeService();
三、TaskService:任务管理。
1)是activiti的任务服务类。能够从这个类中获取任务的信息。
2)如何建立:processEngine.getTaskService();
四、HistoryService:历史查询,包含流程变量查询,流程查询,流程执行对象查询。
1)是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为咱们提供查询历史信息。
2)如何建立:processEngine.getHistoryService();
五、IdentityService:组织机构管理。
如何建立:processEngine.getIdentityService ();
六、FormService:任务表单管理。
如何建立:processEngine.getFormService();
七、ManagementService。
如何建立:processEngine.getManagementService();
2、ProcessDefinition。
流程定义对象,能够从这个类中获取资源文件等等。
3、ProcessInstance。
表明流程定义的执行实例,一个流程实例包含这一个流程上面的全部的节点,那么咱们能够经过这个类获取到整个流程中当前全部信息,一个流程实例表示一个流程从开始到结束的最大流程分支,即一个流程只有一个流程实例。
4、Execution。
activiti中用这个对象描述流程执行的每个节点。在没有并发的状况下,Execution即为ProcessInstance。流程按照流程定义的规则执行一次的过程就能够表示执行对象Execution。
查看源代码便可发现,ProcessInstance集成了Execution。
在单线流程中Execution即为ProcessInstance,可是在并发状况,即有分支流程的状况下,每一条流程就有一个Execution了。
总结:
* 一个流程中,流程执行对象(Execution)能够有多个,可是流程实例对象(ProcessInstance)只能有一个。
* 当流程按照流程定义的规则只执行一次的时候,流程执行对象(Execution)即为流程实例对象(ProcessInstance)。