一.Activiti7体系架构
通过加载activiti.cfg.xml文件得到ProcessEngineConfiguration对象,通过ProcessEngineConfiguration对象可以得到ProcessEngine对象
得到该对象后,可以通过流程引擎对象ProcessEngine来得到各种Service,每一种Service接口有每个用途
- RepositoryService activiti 的资源管理类
- RuntimeService activiti 的流程运行管理类
- TaskService activiti 的任务管理类
- HistoryService activiti 的历史管理类
- ManagerService activiti 的引擎管理类
二.Activiti使用步骤
1.流程定义
使用Activiti Designer工具创建流程图
新建一个BPMNFile流程图,可更改该流程图的ID和每个任务环节的执行人,流程图就是一个xml文件,每一个流程需要生成一张流程图保存,
首先将.bpmn文件改为.xml文件
然后右键该xml文件Diagrams--->show BPMN 2.0 Designer就能生成一张流程图
将流程图导出保存到项目对应目录即可
然后将xml改回bpmn即可
2.流程部署
需要将流程部署到Activiti当中,代表当前有该流程
1 /** 2 * 流程部署 3 * `act_ge_bytearray` 流程定义的资源信息,包含bpmn和png流程文件信息 4 * `act_re_deployment` 流程部署信息,包含流程名称,ID,Key等 5 * `act_re_procdef` 流程定义信息 6 */ 7 @Test 8 public void deployment(){ 9 //获取ProcessEngine对象 默认配置文件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration 10 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); 11 //获取RepositoryService对象进行流程部署 12 RepositoryService repositoryService = processEngine.getRepositoryService(); 13 //进行部署,将对应的流程定义文件生成到数据库当中,作为记录进行保存 14 Deployment deployment = repositoryService.createDeployment() 15 .addClasspathResource("flowchart/activiti.bpmn") //加载流程文件 16 .addClasspathResource("flowchart/activiti.png") 17 .name("请假流程") //设置流程名称 18 .key("activitiKey") 19 .deploy(); //部署 20 21 //输出部署信息 22 System.out.println("流程名称:"+deployment.getName()); 23 System.out.println("流程ID:"+deployment.getId()); 24 System.out.println("流程Key:"+deployment.getKey()); 25 }