别再硬编码业务流程了,试试这款轻量级流程编排框架!
Java技术栈
共 4364字,需浏览 9分钟
· 2021-01-09
Java技术栈
www.javastack.cn
关注阅读更多优质文章
前言
开源解决方案
https://gitee.com/bryan31/liteFlow
Liteflow框架的作用
Liteflow的设计原则
每个工人无需和其他工人进行沟通。工人只需要关心自己的工作内容和工作台上的资源。这样就做到了每个工人之间的解耦和无差异性。 即便是工人之间调换位置,工人的工作内容和关心的资源没有任何变化。这样就保证了每个工人的稳定性。 如果是指派某个工人去其他的工作台,工人的工作内容和需要的资源依旧没有任何变化,这样就做到了工人的可复用性。 因为每个工人不需要和其他工人沟通,所以可以在生产任务进行时进行实时工位更改:替换,插入,撤掉一些工人,这样生产任务也能实时的被更改。这样就保证了整个生产任务的灵活性。
springboot里快速配置
Spring Boot 基础教程看这里:
https://github.com/javastacks/spring-boot-best-practice
<dependency>
<groupId>com.yomahub>
<artifactId>liteflow-spring-boot-starter>
<version>2.3.3>
>
liteflow.rule-source=config/flow.xml
定义组件
NodeComponent
类,然后实现process
方法就行,以下为示例:@Component("test")
public class TestComponent extends NodeComponent {
@Override
public void process() {
Slot slot = this.getSlot();//slot为这个请求的上下文
//这里为你的业务处理逻辑
}
}
AbsSlot
类,便可成为你自己的Slot。更加贴合业务。process
方法,还有几个可选实现:@Component("test")
public class TestComponent extends NodeComponent {
@Override
public void process() {
Slot slot = this.getSlot();//slot为这个请求的上下文
//这里为你的业务处理逻辑
}
@Override
public boolean isAccess() {
Slot slot = this.getSlot();
//这里做你的参数检查,如果没获取到必须的业务参数,就不会进入该组件
boolean checkResult = true;//模拟检查结果为true
return checkResult;
}
@Override
public boolean isContinueOnError() {
return super.isContinueOnError();//默认为false
}
@Override
public boolean isEnd() {
return super.isEnd();//默认为false
}
}
编辑规则文件
config/flow.xml
中,所以我们要编辑这个文件。<chain name="chain1">
<then value="a,c"/>
<when value="b,d"/>
<then value="e,f,g"/>
>
<chain name="chain1">
<then value="a,c(b|d)"/>
<then value="e,f,g"/>
>
NodeCondComponent
这个类,最终返回的b就是最终要路由到的节点@Component("c")
public class CComponent extends NodeCondComponent {
@Override
public String processCond() throws Exception {
//你的业务逻辑
return "b";
}
}
<chain name="chain1">
<then value="a,c,strategy1,g"/>
>
<chain name="strategy1">
<then value="m(m1|m2|strategy2)"/>
chain>
<chain name="strategy2">
<then value="q,p(p1|p2)"/>
chain>
https://gitee.com/bryan31/liteFlow
示例工程
https://gitee.com/bryan31/liteflow-example
最后
关注Java技术栈看更多干货
评论
太敢穿了!透视纱裙!性感火辣的身材
绝了呀今天的厂花:吴宣仪1995年1月26日,吴宣仪出生于海南省海口市,中国内地流行乐女歌手、影视演员。2016年2月,吴宣仪随宇宙少女发行首张迷你专辑正式出道。2018年4月,她参加《创造101》综艺选秀,获得第二名,成功加入火箭少女101组合。吴宣仪的颜值一直备受称赞,她的五官立体精致,皮肤白皙
逆锋起笔
0
老爸嘲讽我了,写破代码一年就挣十几万,他在工地带50个工人,一个月光人头费就3万,让我滚回去跟他干!
点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群来自:网络,侵删有个网友的父亲是做工程的,天天就嘲笑他,说他天天写着破代码有啥用,一年就拿个十多万的死工资,然后告诉他自己在工地里面带了50个工人,一个月能抽三万
程序源代码
0
微软开源MS-DOS操作系统源码,冲到GitHub第一了!
大家好,我是轩辕。这两天逛GitHub的时候,突然发现一个叫 MS-DOS的项目冲到Trending榜首了!定睛一看,微软官方啊,搜了一下才知道,原来前两天,微软把MS-DOS 4.0系统开源了!关于这个系统,估计现在很多程序员都不知道了,或者只在古老的教科书上看过这玩意儿。MS-DOS,全称为Mi
编程技术宇宙
6
热搜第一,腾讯又一游戏停运了!
腾讯又有一款游戏要停运了。最近,腾讯游戏宣布:由于游戏的代理协议即将到期,《食物语》将于2024年6月18日11:00停止在中国大陆地区的运营。并且这次的停运话题一度冲上热搜榜第一位,引发网友热议。据了解,《食物语》是一款中华美食拟人的国风女性向RPG养成手游,于2019年9月份公开测试,运营至今已
逆锋起笔
0
今年后端爆了???
大家好,我是二哥呀。每次登录牛客,看到最多的就是各种 Java 后端岗位的喜讯,美团 OC了、快手 OC 了、就连腾讯 OC 的都是 Java 岗,我怀疑牛客是不是给我打了“只报喜不报忧”的标签?星球里也有不少球友给我发来喜讯,难道说每年都在凉凉的 Java 后端又承担起了就业的重任?!不可能,绝对
沉默王二
3
五一抢票难,Github上这几个Python项目,你可以试试
又到五一长假啦(虽然其实就放了1天),大家是打算家里蹲or出去玩,又或者是在公司加班呢...今天给大家介绍三个和12306相关的项目,看看你是否用得上。/01/ py12306py12306购票助手,顾名思义,12306买票的~需要在python 3.6以上版本运行程序。1. 安装依赖gi
Crossin的编程教室
0
好甜!这颜值身材,妹妹太会撩了
好甜!天赋优势尽显,这身材和颜值也是杠杠的!有这样的女朋友,请把我焊在家里!杨幂体操服写真,火辣身材尽显眼底兼具性感和可爱,腰臀比十分夸张,堪称顶级身材!空姐制服跳舞,还有女仆装,顶的住吗?二次元老婆萌妹子合集https://pan.xunlei.com/s/VNsEXBRo5po8a
逆锋起笔
0
我发现这款浏览器真不错
“软件分享”只分享好玩有趣的黑科技软件很多人都知道我的电脑安装了10款浏览器,每一款浏览器都有自己的分工,国内外的浏览器基本都用过,今天我又发现了一款浏览器。下载用了一下午感觉还很符合国内用户使用,这款浏览器叫CentBrowser(百分浏览器)。可以说是谷歌浏览器增强版吧。Cent Browser
一锅汤软件
2