mac-flow 示例与流程编辑器
前往下载 流程应用示例 | 简化版流程编辑 | 依赖JAR包与源码下载创建服务
点击“服务管理”,“添加”,添加成功后,即可在表格上点击“编辑流程”开始编辑开始编辑
下图是一个简单的流程图:- 放置节点方式一:从右侧“节点元素”标签页拖拽想要的节点到中间的绘图区
- 放置节点方式二:在右侧“节点元素”标签页选中想要的节点,再到中间的绘图区点击鼠标右键即可放置。
- 绘制箭头的方法:假设需要绘制箭头连接AB两个节点,需先在右侧“节点元素”标签页“单击”箭头,然后再将鼠标移动到A节点上(该节点的矩形区域内),按下鼠标左键不放,移动鼠标到B节点上后松开。
- 右侧的属性面板上的下拉框,除了可以用鼠标点选外,均可以使用“回车”加“上下”键来选取。输入关键字并回车可过滤选项。
- 一般情况下接口不需要填写
- “实现类”和“包装器”可以直接输入而不需要“选取”,但可以针对接口保存已有的实现类和包装器以便复用
属性配置
选中某个节点,在其“接口配置”中填写“实现类”作为这个节点的handler,然后点击“属性配置”为这个handler注入必要属性:包装器
节点的包装器配置用于在调用当前节点的Handler之前和之后进行一些处理,比如参数转换,原理如下:判定节点与多路分支节点
判定节点和多路分支节点都支持MVEL表达式和注入Handler这两种实现方法,如果如果有注入handler则直接调用,否则将解析配置的表达式。流程引用
新创建的服务将被作为组件放到组件库,在流程编辑器的左侧的“组件库”标签页可以找到,拖动一个组件到绘图区即可。被引用的流程将显示一个子流程节点(subflow)选中某个子流程节点,在右侧“基础属性”区可以找到“转到子流程”的链接,方便转去编辑子流程。
循环与递归
mac-flow天然支持循环,无需专门的处理,非常自然,递归同理。参见makeMoney示例并行与异步
fork分为两种形式,一种是以固定的分支并行(参见account query示例),另一种是动态的分支并行(参见make money示例)。前者多用于联机交易,后者多用于批量应用。fork/join是实现异步的一种形式,也可以自行使用Future模式来实现。更多的异步形式,比如异步通知,如果不是从通讯层开始支持,而单靠流程引擎通过线程也实现的话,意义不大。由mac-rpc来实现更合适。
事务处理
事务处理依赖于应用框架如何实现事务,并不属于流程引擎的功能范畴,mac-flow只提供接口,并不提供默认的实现。这里提供一种基于spring事务管理器的实现SimpleTxHandler.java,供大家参考。创建组件
选中一个节点,点击右侧面板最下端的“转换为组件”按钮,即可将当前节点转成组件。下次画图时就可以直接从组件库中将此组件拖出使用,不必重复配置。注:由于组件的管理相对复杂,提供下载的流程编辑器在修改组件时并不会更新已画好的流程图。