# river **Repository Path**: JackyMoTo/river ## Basic Information - **Project Name**: river - **Description**: 使用起来像河流一样自然的流程编排引擎 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2021-04-05 - **Last Updated**: 2021-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # river #### 介绍 使用起来像河流一样自然的流程编排引擎 #### 流程定义 1. 通过代码写出流程图 > ``` > FlowDefine build = FlowBuilder.builder("flow1", "流程1") > .target("node1") > .target("node2") > .source("node2").conditionTarget("node21", "#amount < '1000'").target("node22").collect("node3") > .source("node2").conditionTarget("node23", "#amount >= '1000'").collect("node3") > .target("node4") > .target("node5") > .parallelSource("node5").target("node51").collect("node6") > .parallelSource("node5").target("node52").collect("node6") > .parallelSource("node5").target("node53").collect("node6") > .build(); > ``` 2. web页面在线画流程图 待完善 #### 流程节点 一个方法为一个节点 1. 在有流程节点方法类上打上@RiverService注解(类似于spring mvc的@Controller) 2. 在流程节点方法上打上@RiverNode标识方法为流程节点(类似于spring mvc的@RequestMapping) 3. 将方法参数名从流程上下文中get值,并将值注入到方法参数中(类似于spring mvc的参数自动注入) #### 不依赖任何第三方框架使用说明 > ``` > //流程节点 > @RiverService > public class TestRiverService { > > @RiverNode("node1") > public void node1(String name){ > System.out.println("node1==========" + name); > } > > @RiverNode("node2") > public void node2(){ > System.out.println("node2=========="); > } > } > //流程定义 > FlowDefine flowDefine = FlowBuilder.builder("test1", "测试流程1") > .target("node1") > .target("node2") > .build(); > //初始化流程引擎 > FlowEngine flowEngine = new FlowEngine("com.xiaoer.river.execute.engine.service"); > //流程参数 > Map vars = new HashMap<>(); > vars.put("name", "张三"); > //执行流程 > flowEngine.execute(flowDefine, vars); > ``` #### 和spring整合使用说明 待完善 #### 和spring-boot整合使用说明 待完善 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)