前言
每一个技术都必然有其核心,那么今天就来说一下Activiti的核心
大纲
Activiti的核心有:流程引擎(☆☆☆☆☆)、和由流程引擎创建的各种服务。
流程引擎
流程引擎(ProcessEngine),流程引擎初始化的主要目的就是
- 初始化Activiti所需要的表,所以这边配置数据源 相当重要
- 通过流程引擎对象获取各种核心服务
例如:
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
服务
流程引擎对象能够实例化的核心服务有如下几种:
- RepositoryService 管理流程定义
- RuntimeService 执行管理,包括启动、推进、删除流程实例等操作
- TaskService 任务管理
- HistoryService 历史数据管理(管理正在执行或历史执行的数据)
- IdentityService 组织机构管理(一般很少用,因为提供的字段太少不能够满足一般项目,一般的系统自己维护组织机构相关的表)
- FormService 一个可选服务,任务表单管理,提供启动表单和任务表单相关的服务。启动表单会在流程实例启动之前展示给用户 ,任务表单会在用户完成任务时展示。
- ManagerService 查询数据库中的数据、表的元数据、以及执行命令的方法,在使用Activiti的定制环境中基本上不会用到。它可以查询数据库的表和表的元数据。另外,它还提供了查询和管理异步操作的功能。Activiti的异步操作用途很多,比如定时器,异步操作,延迟暂停,激活,等等。
== 展示如下:==
processEngine.getRepositoryService();
//流程引擎对象实例service方法需要在流程引擎对象实现类(ProcessEngineImpl)中实现方法,如下:
public RepositoryService getRepositoryService() {
return repositoryService;
}
//for example
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署对象相关的service
.createDeployment()// 创建一个部署对象
.name("流程定义")// 添加部署的名稱
.addClasspathResource("diagrams/helloworld.bpmn")// 从classpath的资源中加载,一次只能加载一个文件
.addClasspathResource("diagrams/helloworld.png")// 从classpath的资源中加载,一次只能加载一个文件
.deploy();// 完成部署
其他的service也是同样的道理
总结
今天的总结就先到这里,接下来会具体的讲解Activiti的几种部署方式,以及各个服务的使用。