咖啡兔流程执行逻辑分析
1,如:前台页面:流程管理->模型工作区菜单:
请求url:/workflow/model/list
web容器根据"/workflow/model/list"路径映射到DispatcherServlet(url-pattern为"/workflow/model/")进行处理
2,DispatcherServlet将"/workflow/model"路径映射到名字为"/workflow/model"的Bean进行处理,即ModelController,
package me.kafeitu.demo.activiti.web.workflow;
import java.io.ByteArrayInputStream;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.Model;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
/**
* 流程模型控制器
*
* @author henryyan
*/
@Controller
@RequestMapping(value = "/workflow/model")
public class ModelController {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
RepositoryService repositoryService;
/**
* 模型列表
*/
@RequestMapping(value = "list")
public ModelAndView modelList() {
ModelAndView mav = new ModelAndView("workflow/model-list");
List<Model> list = repositoryService.createModelQuery().list();
mav.addObject("list", list);
return mav;
}
3,Model(ModelAndView的逻辑视图名)的list方法处理后,返回一个ModelAndView给DispatcherServlet,对应到具体页面/WEB-INF/views/workflow/model-list.jsp
4,Jst1View(/WEB-INF/views/workflow/model-list.jsp)将页面渲染,将传入的模型数据list在视图中展示出来;
5,返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,完成一个请求;
咖啡兔流程执行逻辑分析相关推荐
- Activiti——流程执行历史记录(七)
转自:http://blog.csdn.net/zjx86320/article/details/50363544 之前的几篇文章,为大家简单的介绍了部署流程定义.启动流程实例.查看和办理个人任务以及 ...
- camunda如何监控流程执行
在 Camunda 中,可以使用 Camunda 提供的用户界面和 API 来监控流程的执行情况.以下是几种常用的监控流程执行的方式: 1.使用 Camunda Cockpit:Camunda Coc ...
- Activiti流程执行历史数据查询
代码: HistoryQueryTest.java package com.ytdx.historyQuery;import java.util.List;import org.activiti.en ...
- Activiti基础教程--07流程执行历史记录(历史任务、历史流程实例、历史活动)
相关代码参考gihub:https://github.com/changwensir/Activiti/tree/master/ActivitiDemo1 一.Activiti 历史任务查询 实际工作 ...
- Activiti——HelloWorld-模拟流程执行(三)
1.流程图 [流程原图] [注释图] 2.部署流程定义 /*** 部署流程定义*/@Testpublic void deploymentProcessDefinition() {Deployme ...
- Python装饰器-装饰流程,执行顺序
最近看到一个关于Flask的CTF(RealWorld CTF 2018 web题bookhub)文章 其中的一个trick是装饰器的顺序问题,就想写篇博客回顾下装饰器~ 首先强烈推荐很久之前看的一篇 ...
- camunda 流程执行追踪_九思OA项目管理解决方案:规范企业项目流程,掌握项目进展...
项目管理可以对有限资源的有效计划.组织.控制,确保满足企业实设定的需求和期望.换句话说,项目管理可让企业发展始终处于"可控"状态,让管理者对企业发展"知进度.控成本.防风 ...
- camunda 流程执行追踪_流程引擎为什么选 Camunda
2019 年初我在重新设计我们组负责的流程系统时,选择了 Camunda 流程引擎,并基于该流程引擎实现了一套适配方案.以前就想做一次总结,但总拖着. 最近公司中台在做流程引擎选型,相关同事找我了解 ...
- SKIL/工作流程/执行作业
执行作业 作业是在后台对连接的SKIL资源运行的计算.作业可以有两种类型: 训练 推理 运行作业 完成将外部资源连接到skil之后,可以通过以下两种方式对其执行训练/推理作业. A. CLI B. R ...
最新文章
- 对象拷贝 Apache BeanUtils与Spring BeanUtils性能比较
- 用Jmeter制造软件测试数据
- idea ctrl+alt+t快捷键
- Map的4种遍历方法
- 你的创业余额还够么—网易阿里大咖带你领略大数据
- 非线性动力学_非线性动力学特辑 低维到高维的联通者
- phoenix创建索引报错“ Mutable secondary indexes must have the hbase.regionserver.wal.codec property”
- maven 打包部署时访问远程仓库中没有的jar
- PyTorch 1.0 中文文档:torch.hub
- Leetcode每日一题:49.group-anagrams(字母异位词分组)
- 机器学习(周志华)——决策树问题
- atom无法安装插件的解决方法之一
- Unity实现多语言切换
- 计算机书籍排版抓图要求,计算机录入与排版
- IC卡参数公钥之 AID和RID
- dfasdfad大发
- android怎么美化ui,安卓教程第一期最终篇(转)systemui.apk最全修改美化
- 大数据智慧交通项目【完整资料】
- L3-001 凑零钱 (30 分)
- 移植中文TTS(ekho)到ARM linux开发板
热门文章
- Rockchip 红外遥控开发指南
- art-pi lvgl添加触摸事件部分代码
- CentOS查看主板型号及硬件信息
- **阿里云ECS Linux服务器图形化界面安装方法 Ubuntu**
- Android内存管理优化建议
- Cause: java.sql.SQLExceptioValue ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp
- e代理创始人兼CEO何文迪:中国财富管理行业正式进入“开放平台”阶段
- 记录小米设备事件获取
- Java8中字符串连接(join)收集器 Collectors.joining
- 两点顶点之间最短路径问题