文章插图
这一切利用LiteFlow轻而易举!框架的表达式语言学习门槛很低,但是却可以完成超高复杂度的编排 。
适用场景不适用于哪些场景:
LiteFlow只做基于逻辑的流转,而不做基于角色任务的流转 。如果你想做基于角色任务的流转,推荐使用flowable,activiti这2个框架 。
适用于哪些场景:
LiteFlow适用于拥有复杂逻辑的业务,比如说价格引擎,下单流程等,这些业务往往都拥有很多步骤,这些步骤完全可以按照业务粒度拆分成一个个独立的组件,进行装配复用变更 。使用LiteFlow,你会得到一个灵活度高,扩展性很强的系统 。因为组件之间相互独立,也可以避免改一处而动全身的这样的风险 。
Springboot场景安装运行依赖:
<dependency><groupId>com.yomahub</groupId><artifactId>liteflow-spring-boot-starter</artifactId><version>2.8.2</version></dependency>
配置:
组件的定义:
1、在依赖了以上jar包后,你需要定义并实现一些组件,确保SpringBoot会扫描到这些组件并注册进上下文
@Component("a")public class ACmp extends NodeComponent {@Overridepublic void process() {//do your business}}
2、以此类推再分别定义b,c组件
@Component("b")public class BCmp extends NodeComponent {@Overridepublic void process() {//do your business}}
@Component("c")public class CCmp extends NodeComponent {@Overridepublic void process() {//do your business}}
SpringBoot配置文件:
然后,在你的SpringBoot的Application.properties或者application.yml里添加配置(这里以properties为例,yaml也是一样的)
liteflow.rule-source=config/flow.el.xml
规则文件的定义:
同时,你得在resources下的config/flow.el.xml中定义规则
<?xml version="1.0" encoding="UTF-8"?><flow><chain name="chain1">THEN(a, b, c);</chain></flow>
SpringBoot在启动时会自动装载规则文件 。
执行:
声明启动类:
@SpringBootApplication//把你定义的组件扫入Spring上下文中@ComponentScan({"com.xxx.xxx.cmp"})public class LiteflowExampleApplication {public static void main(String[] args) {SpringApplication.run(LiteflowExampleApplication.class, args);}}
然后你就可以在Springboot任意被Spring托管的类中拿到flowExecutor,进行执行链路:
@Componentpublic class YourClass{@Resourceprivate FlowExecutor flowExecutor;public void testConfig(){LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg");}}
提示:
这个DefaultContext是默认的上下文,用户可以用最自己的任意Bean当做上下文传入,如果需要传入自己的上下文,则需要传用户Bean的Class属性,具体请看数据上下文这一章节 。
示例这个案例为一个价格计算引擎,其目的是模拟了电商中对订单价格的计算 。
文章插图
—END—
开源协议:Apache2.0
开源地址:
https://github.com/dromara/liteflow
【开箱即用的轻量级组件式规则引擎LiteFlow】
推荐阅读
- 投影仪|同价位亮度天花板!当贝投影F3 Air开箱图赏
- 微信老是占内存?只需4步即可瞬间清出大量空间,速度比原来快10倍
- 记住这3点即可,回归最简单的养金鱼方法 怎样养金鱼
- 我用的4G手机能用5G网络吗 4g手机能用5g网络吗
- 河北:全省立即进入战时状态 石家庄为发布会延迟道歉
- 汉堡|什么眼霜好用又实惠 最好用的十大眼霜排名
- 河北10家医院发紧急公告 河北:全省立即进入战时状态
- 苹果|未来要取代iPhone!苹果首款AR/VR设备即将启动量产
- 即使中医文化的经典理论是完整的
- 格力空调有哪些非常好用的功能 格力空调怎么样